AFNetworking 的 Magical Record 导入问题
Posted
技术标签:
【中文标题】AFNetworking 的 Magical Record 导入问题【英文标题】:Magical Record import issue with AFNetworking 【发布时间】:2013-08-21 20:26:47 【问题描述】:我在使用 Magical Record 时遇到问题。我有一组需要导入的 ProviderSearchResult
对象。当我导入它们时,我不断获得 EXC_BAD_ACCESS 用于
#24 0x00008770 in __67+[NSManagedObject(MagicalRecord) MR_executeFetchRequest:inContext:]_block_invoke at
MagicalRecord/Categories/NSManagedObject/NSManagedObject+MagicalRecord.m:33
我已经到处搜索如何解决这个问题,但没有任何效果。我的代码是
ApiClient *client = [ApiClient sharedInstance];
NSDictionary *dataDictionary = [[NSDictionary alloc] initWithObjects:@[searchString] forKeys:@[@"companyName"]];
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dataDictionary options:0 error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSString *token = [[[UserManager sharedInstance] getAuthenticationObject] authenticationToken];
NSMutableDictionary *params = [[NSMutableDictionary alloc] initWithObjects:@[@"json", token, jsonString ]
forKeys:@[@"callType", @"token", @"data"]];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
[client getPath:@"GetClientInterfaces/" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject)
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
NSLog(@"Operation: %@", operation);
NSLog(@"Response: %@", responseObject);
NSLog(@"Type: %@", [[responseObject valueForKeyPath:@"details.items"] class]);
NSLog(@"First: %@", [[responseObject valueForKeyPath:@"details.items"] firstObject]);
NSArray *providerResults = [responseObject valueForKeyPath:@"details.items"];
NSLog(@"Results: %@", providerResults);
__block NSArray *array;
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext)
array = [ProviderSearchResults MR_importFromArray:providerResults inContext:localContext];
];
NSLog(@"Array: %@", array);
failure:^(AFHTTPRequestOperation *operation, NSError *error)
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
NSLog(@"Operation: %@", operation);
NSLog(@"Shit: %@", error);
];
任何人都可以看到任何会导致这不起作用的错误吗?
【问题讨论】:
【参考方案1】:在与开发人员进行了长时间的交谈后,问题归结为未分配给实体的主键。
我必须在 Xcode 中选择实体,然后在 userInfo 部分中我添加了一个键/值 'relatedByAttribute':'clientMasterId'
。
根据 MR,clientMasterId
现在将成为我的主键
【讨论】:
以上是关于AFNetworking 的 Magical Record 导入问题的主要内容,如果未能解决你的问题,请参考以下文章
带有 Magical Record 的导入记录不会立即显示在 tableView 中
AFNetworking 识别失败原因:用户取消请求或网络故障
为啥我使用 AFNetworking 获得“内容长度”,而使用 Alamofire 却没有?