2011-11-23 89 views
0

我有以下幾點:問題與服務器響應

NSString *update_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]; 
    NSDictionary *status = [parser objectWithString:update_string error:nil]; 
    NSLog(@"staus %@", [status valueForKey:@"status"]); 

    if([status valueForKey:@"status"] == @"1") 
    { 
     NSLog(@"inside condition"); 
    } 

的事情是,第一NSLog的

NSLog(@"staus %@", [status valueForKey:@"status"]); 

顯示1但即使該程序不會在如果condition.Any進入裏面理念?

+0

您確定返回的值不是int或NSNumber而不是NSString嗎? – cpjolicoeur

+5

試試'[[status valueForKey:@「status」] isEqual:@「1」]'? – Kjuly

回答

2

則應使用isEqualToString代替==

+0

我得到這個錯誤時,試圖:[__ NSCFBoolean isEqualToString:]:無法識別的選擇發送到實例0x2362f60 sharedlibrary apply-load-rules全部 – adrian

+0

事實是,服務器響應應該是布爾value-true或false.But當我NSlog它它顯示0或1,而不是false或true。 – adrian

+0

如果你將[intValue]中的左側包裝起來,並按照上面的建議使用isEqual,該怎麼辦? –

0

的NSLog(@ 「居留制%@」,[狀態valueForKey:@ 「狀態」]);

if([[status valueForKey:@"status"] boolValue]) 
{ 
    NSLog(@"inside condition"); 
}