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 识别失败原因:用户取消请求或网络故障

为啥我使用 AFNetworking 获得“内容长度”,而使用 Alamofire 却没有?

如何在 AFNetworking 2 中使用 POST + 参数下载经过身份验证的文件?

878. Nth Magical Number