从iOS6开始,我对UIImages有一个非常奇怪的问题导致应用程序崩溃。 完整的方法是这样的:
NSURL *url = [NSURL URLWithString:@"http://api.twitter.com/1/users/show.json"];
NSDictionary *parametros = [NSDictionary dictionaryWithObjectsAndKeys:account.username, @"screen_name", nil];
SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter
requestMethod:SLRequestMethodGET
URL:url
parameters:parametros];
[request setAccount:account];
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
if ([urlResponse statusCode] == 200) {
NSError *error_ = nil;
NSDictionary *userInfo = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error_];
UIImage *image = [UIImage imageWithData:[userInfo objectForKey:@"profile_image_url"]];
UIImage *image = [UIImage imageWithData:[userInfo objectForKey:@"profile_image_url"]];
dispatch_sync(dispatch_get_main_queue(), ^{
[_imageCache setObject:image forKey:account.username];
[ListAccount reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:NO];
});
}
}];
问题出现在这一行
UIImage *image = [UIImage imageWithData:[userInfo objectForKey:@"profile_image_url"]];
这在iOS5中没问题。我似乎无法找到原因或有同样问题的人。任何建议都将非常感谢
崩溃如下:
2012-09-28 17:30:53.600 Catalogo[7321:c07] -[__NSCFString bytes]: unrecognized selector sent to instance 0x10eaf180
2012-09-28 17:30:53.601 Catalogo[7321:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString bytes]: unrecognized selector sent to instance 0x10eaf180'
*** First throw call stack:
(0x2aed012 0x1a28e7e 0x2b784bd 0x2adcbbc 0x2adc94e 0x2a75390 0x203630c 0x2035e7e 0x2035d98 0x10dc23d 0xf991f3 0xf98ef4 0x6c54e 0x1b9e731 0x1bad014 0x1b9d7d5 0x2a93af5 0x2a92f44 0x2a92e1b 0x2dd87e3 0x2dd8668 0xf7765c 0x79cd 0x2d45)
libc++abi.dylib: terminate called throwing an exception
以下内容:
[userInfo objectForKey:@"profile_image_url"]
返回推特个人资料图片的网址
答案 0 :(得分:2)
您需要将 [userInfo objectForKey:@"profile_image_url"]
转换为NSData
,然后将其传递给 imageWithData:。
NSString * profileImageString = [userInfo objectForKey:@"profile_image_url"];
NSData * profileImageData = [profileImageString dataUsingEncoding:NSUTF8StringEncoding];
比使用:
UIImage *image = [UIImage imageWithData:profileImageData];