Ответ 1
Я думаю, что это:
BOOL boolValue = [myString boolValue];
Я программирую в Objective-C для iOS. Я хотел бы проанализировать объект типа NSString в скаляр типа BOOL.
У меня есть значение, и я знаю, что оно будет либо "YES", либо "NO", но значение YES (или) NO - NSString, и я просто хочу изменить NSString в BOOL.
Как я могу это сделать?
Пожалуйста, ответьте мне, если вы знаете.
Спасибо за чтение.
Я думаю, что это:
BOOL boolValue = [myString boolValue];
Вероятно, вы должны использовать NSString
-boolValue
. Чтобы напрямую указать документацию:
[Возвращает t] he Булево значение текста получателей. Возвращает YES on столкнувшись с одним из "Y", "y", "T", "t" или цифрой 1-9 - методом игнорирует любые завершающие символы. Возвращает НЕТ, если приемник не начните с действительного десятичного текстового представления числа.
Это похоже на ваши входные случаи.
if ([string isEqualToString: @"YES"])
foo();
else
bar();
Это, вероятно, лучше всего решить с помощью условного, например:
if ([myString isEqualToString:@"YES"])
myBool = YES;
else if ([myString isEqualToString:@"NO"])
myBool = NO;
Надеюсь, это помогло вам, удачи в программировании.
Это свойство также должно возвращать true, если строка является "true", поэтому я думаю, что расширение необходимо...
extension NSString{
var boolValueExtended: Bool {
get{
return boolValue ||
self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()).uppercaseString == "TRUE"
}
}
}