Как получить доступ к свойству типа BOOL? - PullRequest
2 голосов
/ 20 июля 2009

У меня есть класс, и в заголовке я определяю это:

@interface MyViewController : UIViewController {
    BOOL blackBackground;
}
@property(nonatomic, assign) BOOL blackBackground;

В реализации у меня есть @synthesize для blackBackground.

Затем я создаю экземпляр этого объекта и выполняю:

[myViewController setBlackBackground:YES];

теперь логическое значение должно иметь значение YES (или true;)). Но потом я проверяю:

if ([myViewController blackBackground]) {
  NSLog(@"yep, it's true");
}

однако, похоже, он ничего не отвечает и не возвращает, либо значение не установлено, либо я не могу вызвать / проверить его. Есть идеи, что там не так?

Ответы [ 3 ]

17 голосов
/ 20 июля 2009

Вы уверены, что на самом деле используете приведенный выше код? Он имеет синтаксические ошибки и не будет компилироваться, поэтому вполне возможно, что вы не видите этот код выполненным, потому что у вас запущены старые копии кода.

Проблема, из-за которой вы не можете объявить скалярное свойство как-либо сохранять, назначать, копировать семантику, это приведет к ошибке компиляции. Вам следует изменить:

@property(nonatomic, assign) BOOL blackBackground;

до

@property(nonatomic) BOOL blackBackground;
1 голос
/ 08 марта 2011

Я согласен с @Louis Gerbarg и считаю, что у вас была какая-то опечатка или вы только что создали более старую версию кода, но я не согласен с ним по поводу причины, по которой он указал на вашу ошибку: Он написал:

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

@ свойство (nonatomic, assign) BOOL blackBackground;

до

@ свойство (неатомное) BOOL blackBackground;

А по прикрепленной ссылке и документам Apple:

@property (nonatomic, assign) BOOL blackBackground;

И

@property (nonatomic) BOOL blackBackground;

То же самое, так как "assign" является поведением по умолчанию для свойств.

(правый?)

предыдущий аналогичный вопрос stackOverflow и ответ

1 голос
/ 20 июля 2009

Я думаю, что это BlackBackground или, конечно, вы можете использовать self.blackBackground

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...