我试图从Facebook获取数据,但是当我尝试将数据解析为字典时,我收到此错误:
Mistake: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (No value.) UserInfo=0x144ad420
这是我的代码:
NSString *query =
@"SELECT page_id, type FROM page_fan WHERE uid = me() ";
// Set up the query parameter
NSDictionary *queryParam = @{ @"q": query };
// Make the API request that uses FQL
[FBRequestConnection startWithGraphPath:@"/fql"
parameters:queryParam
HTTPMethod:@"GET"
completionHandler:^(FBRequestConnection *connection,
id results,
NSError *error) {
if (error) {
NSLog(@"Error: %@", [error localizedDescription]);
} else {
BOOL can = [NSJSONSerialization isValidJSONObject:results];
NSLog(@"can %d", can);
NSError *mistake;
NSDictionary *first = [NSJSONSerialization JSONObjectWithData:results options:0 error:&mistake];
if (mistake) {
NSLog(@"Mistake: %@", mistake);
} else {
NSLog(@"No mistake");
}
can标识符返回' 1'所以我假设错误与Facebook提供的数据无关。
来自Facebook的数据正在恢复正常,这是一个结果样本:
data = (
{
"page_id" = 253370381511811;
type = "PUBLIC FIGURE";
},
{
"page_id" = 148389618201;
type = "LOCAL BUSINESS";
},
{
"page_id" = 213631462169238;
type = COMMUNITY;
}
答案 0 :(得分:0)
我不知道该库,但您编写的代码不可能正常工作。
isValidJSONObject是一种方法,用于检查您是否有可以序列化为JSON的对象,即NSArray或NSDictionary,其中仅包含可以序列化为JSON的键和值。
JSONObjectWithData是一个接受NSData对象并将其反序列化为NSArray或NSDictionary的方法。
由于NSData对象在isValidJSONObject中始终失败,并且NSDictionary或NSArray永远不是JSONObjectWithData的有效输入,因此其中一个调用必须失败。