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

Как разобрать NSString в BOOL в Objective-C?

Я программирую в Objective-C для iOS. Я хотел бы проанализировать объект типа NSString в скаляр типа BOOL.

У меня есть значение, и я знаю, что оно будет либо "YES", либо "NO", но значение YES (или) NO - NSString, и я просто хочу изменить NSString в BOOL.

Как я могу это сделать?

Пожалуйста, ответьте мне, если вы знаете.

Спасибо за чтение.

4b9b3361

Ответ 1

Я думаю, что это:

BOOL boolValue = [myString boolValue];

Ответ 2

Вероятно, вы должны использовать NSString -boolValue. Чтобы напрямую указать документацию:

[Возвращает t] he Булево значение текста получателей. Возвращает YES on столкнувшись с одним из "Y", "y", "T", "t" или цифрой 1-9 - методом игнорирует любые завершающие символы. Возвращает НЕТ, если приемник не начните с действительного десятичного текстового представления числа.

Это похоже на ваши входные случаи.

Ответ 3

if ([string isEqualToString: @"YES"])
  foo();
else
  bar();

Ответ 4

Это, вероятно, лучше всего решить с помощью условного, например:

if ([myString isEqualToString:@"YES"])
    myBool = YES;
else if ([myString isEqualToString:@"NO"])
    myBool = NO;

Надеюсь, это помогло вам, удачи в программировании.

Ответ 5

Это свойство также должно возвращать true, если строка является "true", поэтому я думаю, что расширение необходимо...

extension NSString{
 var boolValueExtended: Bool {
    get{
        return boolValue ||
            self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()).uppercaseString == "TRUE"
    }
}

}