Почему XCode сообщает “определенный, но не используемое” предупреждение для моей переменной класса?

foldl несет ту же проблему; это создает преобразователя. Можно использовать foldl' от Данных. Список, чтобы избежать, что проблема:

import Data.List
myLength = foldl' (const.succ) 0

единственной разницей между foldl и foldl' является строгое накопление, таким образом, foldl' решает проблему таким же образом как seq и $! примеры выше. (const.succ) здесь работает то же (\a b-> a+1), хотя succ имеет менее строгий тип.

5
задан gerry3 21 October 2009 в 20:00
поделиться

3 ответа

Эта переменная не является переменной класса / экземпляра. Каждый раз, когда файл заголовка включается в файл .m, компилятор создает новую статическую переменную с областью действия, ограниченной файлом, который включает этот заголовок. Если вы пытаетесь получить переменную уровня класса, переместите объявление в начало соответствующего файла .m.

14
ответ дан 18 December 2019 в 06:51
поделиться

Статическая переменная имеет область видимости файла. Поскольку Xcode не может найти переменную, используемую в этом файле, он видит неиспользуемую переменную. Если вы действительно хотите, чтобы переменная была доступна из всей вашей программы, сделайте это объявление внешней переменной и определите ее в своей реализации. Если он предназначен только для использования этим классом, просто переместите статическую переменную в свой файл реализации.

6
ответ дан 18 December 2019 в 06:51
поделиться

Вы поместили classVar вне определения интерфейса. Это заставит компилятор подумать, что вы объявляете глобальную переменную, и, поскольку это выглядит как файл заголовка (.h), он также будет создан во всех файлах, включая этот файл заголовка. Я предполагаю, что предупреждение появляется при компиляции файла, отличного от MyViewController.m, который включает этот файл заголовка.

ИЗМЕНИТЬ Я предлагаю вам переместить classVar в файл .m для MyViewController (сначала неправильно интерпретировал то, что вы где)

3
ответ дан 18 December 2019 в 06:51
поделиться