我得到一個警告:「返回時將指針從整數,未作類型轉換」這種方法...這種方法有什麼問題?
+(BOOL *)getBoolFromString:(NSString *)boolStr
{
if(boolStr == @"true" || boolStr == @"1"){
return YES;
}
return NO;
}
我得到一個警告:「返回時將指針從整數,未作類型轉換」這種方法...這種方法有什麼問題?
+(BOOL *)getBoolFromString:(NSString *)boolStr
{
if(boolStr == @"true" || boolStr == @"1"){
return YES;
}
return NO;
}
BOOL不是類或對象,所以返回一個指向BOOL是不和返回一個BOOL一樣。
您應該刪除+(BOOL *)
中的*,一切都會好的。
從一個NSString得到BOOL,所有你需要做的就是發送-boolValue
消息,就像這樣:
NSString *myString = @"true"; // or @"YES", etc.
BOOL bool = [myString boolValue];
再說什麼@Jasarien和@jlehr說,你有這樣一個問題:
(boolStr == @"true" || boolStr == @"1")
這是做指針比較,而不是對象相等。你想:
([boolStr isEqualToString:@"true"] || [boolStr isEqualToString:@"1"])
具體而言,從docementation:'在遇到 「Y」, 「Y」, 「T」, 「T」,或數字1-9-方法忽略了一個返回YES任何尾隨的字符。「 – Abizern 2010-03-08 19:27:29