Ric*_*nop 4 iphone objective-c ios
假设这是我想要分配给BOOL变量的JSON中的值:
"retweeted": false
Run Code Online (Sandbox Code Playgroud)
以下是我解析JSON数据的方法:
NSError *error;
NSArray *timeline = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error];
Run Code Online (Sandbox Code Playgroud)
现在,我有一个bool属性定义为:
BOOL *retweeted;
Run Code Online (Sandbox Code Playgroud)
在我的课堂里.当我在解析JSON时这样做:
tweet.retweeted = [[[timeline objectAtIndex:i] objectForKey:@"retweeted"] boolValue];
Run Code Online (Sandbox Code Playgroud)
我收到此错误:

如何解决这个问题呢?
小智 15
BOOL *retweeted;
Run Code Online (Sandbox Code Playgroud)
这是错误的,布尔值是标量,而不是Objective-C对象,所以它们不需要被声明为指针.使用
BOOL retweeted;
Run Code Online (Sandbox Code Playgroud)
代替.
使用NSJSONSerialization布尔值序列化后存储为NSNumber.如果你看一下它实际存储的类型是一个__NSCFBoolean但是没关系.NSNumber是一个不存在的抽象类.系统使用具体类存储该值.
所以
NSNumber* boolean = [serializedDictionary valueForKey:@"boolValue"];
这将返回@0for NO和@1for YES.您可以通过执行以下操作将is用作booleanValue:
if(boolean.boolValue){
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14960 次 |
| 最近记录: |