这个错误是什么意思?[__NSCFNumber length]:无法识别的选择器发送到实例0x6d21350
[__NSCFNumber length]: unrecognized selector sent to instance 0x6d21350
这里是我的代码:
NSString *urlString = @"http://api.twitter.com/1/statuses/update.json";
NSURL *url = [NSURL URLWithString:urlString];
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setObject:status forKey:@"status"];
[params setObject:replyToID forKey:@"in_reply_to_status_id"];
[params setObject:@"1" forKey:@"include_entities"];
// Build the request with our parameter
TWRequest *request = [[TWRequest alloc] initWithURL:url parameters:params requestMethod:TWRequestMethodPOST];
// Attach the account object to this request
[request setAccount:twitterAccount];
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
if (!responseData) {
// inspect the contents of error
NSLog(@"%@", [error localizedDescription]);
self.alert = [[UIAlertView alloc] initWithTitle:@"HTTP error" message:@"I could not connect to the Twitter API." delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[self.alert show];
[self.replyDelegate replyRequestSuccessful:NO];
}
else {
/*NSString *responseDataAsString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(responseDataAsString);*/
NSError *error;
NSArray *replyResponse = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error];
if (!replyResponse) {
NSLog(@"%@", [error localizedDescription]);
self.alert = [[UIAlertView alloc] initWithTitle:@"JSON error" message:@"I could not parse the JSON response from the Twitter API." delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[self.alert show];
[self.replyDelegate replyRequestSuccessful:NO];
}
else {
[self.replyDelegate replyRequestSuccessful:YES];
}
}
}];
我试过debuggin,它死了,一旦它进入performRequestWithHandler。它去了else块,并与上述错误一起死亡。
更可能的是,他的内存管理存在问题,并且运行时/框架期望NSString不再存在(来自过早的重新分配),并且NSNumber已被分配到那里。如果你有意将'length'发送给'NSNumber',编译器会希望提醒你。 – dreamlax 2012-04-11 08:04:13
如果'NSNumber'在字典中或通过其他擦除类型的接口传递,则不会。但是你是对的,他很可能会过度释放某些东西。尝试使用'NSZombieEnabled'可能是个好主意。 – zoul 2012-04-11 08:38:29
“擦除类型”是什么意思? – dreamlax 2012-04-11 08:41:33