Проверьте, установлен ли BOOL (не может быть выполнено с помощью == nil)
Как проверить, установлен ли BOOL в objective-c (iphone)?
Я знаю, что это можно сделать с помощью int или float следующим образом:
NSNumber * Num = [prefs floatForKey: @ "key" ];
например
Ответ 1
Вы не можете. A BOOL - либо YES, либо NO. Другого государства нет. Путь вокруг этого будет заключаться в использовании NSNumber ([NSNumber numberWithBool:YES];), а затем проверьте, является ли сама NSNumbernil. Или укажите второй BOOL, чтобы указать, изменили ли вы значение первого.
Ответ 2
Раздражающе, Objective-C не имеет булева класса. Это, безусловно, похоже на то, что нужно, и это много путешествует. В коллекциях и основных данных все bools хранятся как экземпляры NSNumber.
Это очень раздражает, что нужно все время переходить туда и обратно.
Ответ 3
По умолчанию значение bool устанавливается равным 0 в Objective-C, поэтому вам не нужно проверять, равно ли ваше значение bool в любое время.
Ответ 4
Вместо этого вы можете использовать что-то подобное...