Как мне получить значение bool, которому я могу присвоить true, false и nil в Objective-C? Как Objective-C способ сделать это? Очень похоже на C #'s Nullable.
Я ищу возможность использовать значение nil для представления неопределенного.
Экземпляр NSNumber
может помочь. Например:
NSNumber *yesNoOrNil;
yesNoOrNil = [NSNumber numberWithBool:YES]; // set to YES
yesNoOrNil = [NSNumber numberWithBool:NO]; // set to NO
yesNoOrNil = nil; // not set to YES or NO
Для определения его значения:
if (yesNoOrNil == nil)
{
NSLog (@"Value is missing!");
}
else if ([yesNoOrNil boolValue] == YES)
{
NSLog (@"Value is YES");
}
else if ([yesNoOrNil boolValue] == NO)
{
NSLog (@"Value is NO");
}
На всех платформах Mac OS X после 10.3 и всех платформах iPhone OS метод -[NSNumber boolValue]
гарантированно возвращает YES или NO.
Думаю, для этого вам понадобится какой-нибудь класс, например обернуть bool в объект NSNumber
.