当我从JSON
php获取值时,我得到__NSCFBoolean isEqualToString
的问题:
我的代码如下:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
//convert to JSON
for(id key in res) {
id value = [res objectForKey:key];
NSString *keyAsString = (NSString *)key;
NSString *valueAsString = (NSString *)value;
//NSCFBoolean
/*if([value isKindOfClass:[NSNumber class]])
{
printf("Number");
}
else if([value isKindOfClass:[NSString class]])
{
printf("String --- \n");
if([value isEqualToString:@"0"])
{
printf("Wrong \n");
}
else
{
printf("Right \n");
}
}*/
NSLog(@"%@",[valueAsString class]);
if([keyAsString isEqualToString:@"success"])
{
printf("Working \n");
}
else
{
printf("Not Working\n");
}
//Error is in below line
if([valueAsString isEqualToString:@"0"])// strcmp([value objCType], @encode(BOOL)) == 1)
{
[self loginSuccess];
}
else if(strcmp([value objCType], @encode(BOOL)) == 0)
{
[self loginFailure];
}
NSLog(@"key: %@", keyAsString);
NSLog(@"value: %@", valueAsString);
}
} }
将[__NSCFBoolean isEqualToString:]:
无法识别的选择器问题发送到实例0x1dc9964
从昨天开始搜索谷歌这个问题,但还没有解决方案。 NSCFBoolean现在也不能在iOS 6.0中使用。那么我该怎样做才能从JSON
字符串中检查“0”或“1”?请帮忙。
value
是一个NSNumber对象(__ NSCFBoolean,因为NSNumber是一个类集群),而不是一个字符串!使用[value boolValue]
确定它是0还是1。
投射对象不会改变它的类型!
这是可疑的部分:
if([keyAsString isEqualToString:@"success"] && [valueAsString isEqualToString:@"0"])
{
}
keyAsString,valueAsString(可能是这一个)或两者都不是字符串对象。为什么?我们无法从您的代码中了解这一点,可能您的JSON数据有问题。请告诉我们更多代码。
编辑
试试这个 :
if([keyAsString isEqualToString:@"success"] && [valueAsString isEqualToNumber:@(NO)])
{
}