Подтвердить что ты не робот

Error: свойство 'myBoolVariableName' с атрибутом 'Сохранить' должно быть типа объекта

У меня есть значение BOOL внутри моего определения @interface в моем файле .h. Вот он внизу. У него такая же проблема: указатель или нет.

@interface myCustomViewController : UIViewController <UIWebViewDelegate> {
{
 //...more iboutlets defined above
 BOOL *myBoolVariableName;
}

Когда я компилирую, я получаю "error: property" myBoolVariableName "с атрибутом" Сохранить "должен быть типа объекта" в строке для импорта моего файла .h.

Я нашел здесь эту страницу о целочисленном /nsnumber:

http://discussions.apple.com/thread.jspa?threadID=1846927

Итак, кажется, что я не могу использовать значения BOOL внутри определения @interface. Что я могу использовать вместо этого?

Что мне делать для BOOL/boolean значений?

4b9b3361

Ответ 1

Я предполагаю, что позже в вашем интерфейсе у вас есть что-то вроде этого:

@property (retain) BOOL *myBoolVariableName;

Это означает создание свойства, значение которого является указателем на BOOL и использование семантики сохранения.

Ваша проблема в том, что BOOL * является указателем на байт памяти, а не указателем на объект. И сохранить это то, что применяется только к объектам.

Здесь вы можете создать свойство BOOL.

@interface myCustomViewController : UIViewController <UIWebViewDelegate> {
    BOOL myBoolVariableName;
}

@property myBoolVariableName;

@end

Важными отличиями являются то, что переменная объявляется как "BOOL", а не "BOOL *", а свойство не имеет (сохраняет).

Ответ 2

Я столкнулся с подобной ситуацией. Я решил это,

@interface myCustomViewController : UIViewController {
BOOL myBoolVariableName;
}
@property BOOL myBoolVariableName;
@end

Я отсылаю один ответ от Джона Хесса, но у меня есть одна ошибка. Имя типа требует спецификатора или определителя. Моя предыдущая версия была похожа на

@property myBoolVariableName;

Итак, я добавил BOOL и решил проблему.