在AFIncrementalStore中保存对象时出错。如果NSDictionary尽管有效的JSON resposne,则ResponseObject是NSArray

时间:2012-12-30 21:11:58

标签: afnetworking afincrementalstore

所有

我正在努力解决过去两天的问题,似乎无能为力。如果要求显而易见,请提前道歉。

在一个非常简单的数据模型中,我尝试插入一个新的对象用户。 (属性:name,password和id,分别是NSString,NSString和NSNumber)。成功创建新对象 在API和外部MySQL服务器中。但是,在HTTPrequest的完成块中 (我认为)支持后备存储,它尝试创建资源标识符。

当尝试从表示字典中获取allKeys时,这是应用程序崩溃的原因:

(NSString *)resourceIdentifierForRepresentation :( NSDictionary *)表示实体:(NSEntityDescription *)实体fromResponse:(NSHTTPURLResponse *)响应 从服务器返回的JSON响应如下:

[{“id”:20,“name”:“john doe”,“password”:“secret”}]

任何人都有线索?如果我能在今年解决这个问题,我将非常感激!!!

旁注:马特很棒!

附带问题:当连接恢复时,AFIS将如何处理本地存储,本地更改以及与服务器的同步?

所有

提前致谢并享受2013年!!!

[更新]

问题是我得到了NSArray而不是NSDictionary。我可以通过更改AFIS savecontext中的代码来修复它以传递responseObject [0]但是我不想更改AFIS代码,我仍然觉得奇怪的是,当我有一个有效的JSON响应时我没有得到NSDictionary

1 个答案:

答案 0 :(得分:0)

您可以覆盖AFIS用于从json数据中获取结果对象的方法。

- (id)representationOrArrayOfRepresentationsOfEntity:(NSEntityDescription*)entity
                              fromResponseObject:(id)responseObject

响应对象应该是索引为0的字典数组。