从 JSON 文件填充核心数据时,我目前正在这样做:
NSString *urlString = [value objectForKey:@"url"];
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLResponse *response = nil;
NSError *error = nil;
NSData *dataResponse = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
[managedObject setValue:dataResponse forKey:@"image"];
AFNetworking 有没有更好的(异步)方法来做到这一点?这种情况下最好的方法是什么?它是否必须是同步的,因为我们正在处理 CoreData?
更新:现在试试这个:
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{
[managedObject setValue:data forKey:@"image"];
}];
由于某种原因,当我稍后访问托管对象时,图像属性始终为空,即使上面的 *data 在完成处理程序中不为空。图像在同步方法中保存得很好。我错过了什么?