我在Objective-C for iOS中進行編程。我想將NSString類型的對象解析爲BOOL類型的標量。我有一個值,我知道它將是@「YES」或@「NO」,但是YES(或)NO值是NSString,我只是想將NSString改成BOOL。如何在Objective-C中將NSString解析爲BOOL?
我該怎麼做?
請回答我,如果你知道。
感謝您的閱讀。
我在Objective-C for iOS中進行編程。我想將NSString類型的對象解析爲BOOL類型的標量。我有一個值,我知道它將是@「YES」或@「NO」,但是YES(或)NO值是NSString,我只是想將NSString改成BOOL。如何在Objective-C中將NSString解析爲BOOL?
我該怎麼做?
請回答我,如果你知道。
感謝您的閱讀。
我認爲這是這樣的:
BOOL boolValue = [myString boolValue];
if ([string isEqualToString: @"YES"])
foo();
else
bar();
LOLü6秒打我!哈哈 – Steve 2012-01-17 16:32:53
這不是正確的方法。請參閱bschultz和Tommy的其他兩個答案。 – 2012-01-17 16:34:06
Tim Toady另有說明;-) – 2012-01-17 16:36:44
你應該使用NSString
的-boolValue
。直接引用文檔:
[返回t]接收方文本的布爾值。在遇到「Y」,「y」,「T」,「t」或數字1-9中的一個的 上返回YES,方法 忽略任何結尾字符。如果接收方不是 ,則返回「否」,並以數字的有效小數文本表示形式開頭。
這似乎符合您的輸入案例。
非常感謝,我明白了。 – 2012-01-17 16:37:46
這可能是最好的一個條件來解決,例如:
if ([myString isEqualToString:@"YES"])
myBool = YES;
else if ([myString isEqualToString:@"NO"])
myBool = NO;
希望這有助於你,祝你的節目。
該解決方案遠未正確。有很多方法可以將一個bool存儲在一個字符串中,而這隻能處理一個非常特定的方法。爲什麼重複已經實現的方法的功能。 – FreeAsInBeer 2012-03-16 13:14:46
這太髒了。 – AlKozin 2014-01-16 10:22:30
如果字符串爲「真」,這就是爲什麼我認爲這是需要擴展此屬性也應該返回true ...
extension NSString{
var boolValueExtended: Bool {
get{
return boolValue ||
self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()).uppercaseString == "TRUE"
}
}
}
非常感謝,我明白了。 – 2012-01-17 16:37:30
什麼將是「阿卜杜勒」的布爾值?請建議我。 – 2014-03-04 10:19:56
@Abdul Yasin,它將是0/false。如果您知道字符串中存在布爾值,此方法纔有效;例如@「1」,@「true」,@「YES」等。除此之外,boolValue將始終返回0; – x4h1d 2014-07-16 09:29:29