为什么在iOS 6.1而不是7.1上,获取Twitter追随者的请求会崩溃
我试图加载该用户的Twitter追随者列表。它在iOS 7.1上可以正常加载,但在iOS 6.1上崩溃。崩溃的行是为什么在iOS 6.1而不是7.1上,获取Twitter追随者的请求会崩溃,ios,objective-c,cocoa-touch,twitter,ios6,Ios,Objective C,Cocoa Touch,Twitter,Ios6,我试图加载该用户的Twitter追随者列表。它在iOS 7.1上可以正常加载,但在iOS 6.1上崩溃。崩溃的行是performRequestWithHandler:,错误是-[\uu NSCFNumber length]:发送到实例0xcb4d580的无法识别的选择器。问题的原因是什么 SLRequest* request = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:TWReques
performRequestWithHandler:
,错误是-[\uu NSCFNumber length]:发送到实例0xcb4d580的无法识别的选择器。问题的原因是什么
SLRequest* request = [SLRequest
requestForServiceType:SLServiceTypeTwitter
requestMethod:TWRequestMethodGET
URL:[NSURL URLWithString:[NSString stringWithFormat:
@"%@followers/list.json",
API_BASE_URL
]]
parameters:@{
@"user_id": @(self.context.userId.integerValue),
@"count": @(128),
@"skip_status": @"true"
}
];
request.account = self.context.account;
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
// code that is irrelevant to crash
}];
上述变量是如何定义的:
- API_BASE_URL是静态NSString@“”
- self.context.userId是一个数字字符串
- self.context.account是登录用户的帐户
parameters:@{
@"user_id": self.context.userId,
@"count": @"128",
@"skip_status": @"true"
}
请指出导致崩溃的确切代码行。@rmaddy:是的。这是
performRequestWithHandler:
行。好的,它确实在那一行,而不是在处理程序中。我猜问题是由count
参数是NSNumber
而不是NSString
引起的。将@(128)
更改为@“128”
。同时将用户id
设为字符串而不是数字。@rmaddy。它是请求行,而不是处理程序,因为它在处理之前就崩溃了。你说得对。iOS 6的内部实现要求所有参数都是NSString。iOS 7可以智能地将NSNumber转换为字符串。你可以提交你的答案,我会接受的。