如何将AFIncrementalStore
映射到Twitter API v1.1?
Core Data Persistence with AFNetworking, Done Right
https://github.com/AFNetworking/AFIncrementalStoreREST API v1.1 Resources
https://dev.twitter.com/docs/api/1.1- (id)representationOrArrayOfRepresentationsOfEntity:(NSEntityDescription *)entity
fromResponseObject:(id)responseObject;
- (NSDictionary *)representationsForRelationshipsFromRepresentation:(NSDictionary *)representation
ofEntity:(NSEntityDescription *)entity
fromResponse:(NSHTTPURLResponse *)response;
- (NSString *)resourceIdentifierForRepresentation:(NSDictionary *)representation
ofEntity:(NSEntityDescription *)entity
fromResponse:(NSHTTPURLResponse *)response;
- (NSDictionary *)attributesForRepresentation:(NSDictionary *)representation
ofEntity:(NSEntityDescription *)entity
fromResponse:(NSHTTPURLResponse *)response;
- (NSMutableURLRequest *)requestForFetchRequest:(NSFetchRequest *)fetchRequest
withContext:(NSManagedObjectContext *)context;
- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
pathForObjectWithID:(NSManagedObjectID *)objectID
withContext:(NSManagedObjectContext *)context;
- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
pathForRelationship:(NSRelationshipDescription *)relationship
forObjectWithID:(NSManagedObjectID *)objectID
withContext:(NSManagedObjectContext *)context;
我不知道我写的是否真的有帮助,但我知道的是:
AFIncrementalStore有一些严重的问题,显然被它的创建者抛弃了,因为它与AFNetworking v. 2不兼容
这个问题是由于AFIS试图不仅仅是一个增量存储。增量存储仅在其覆盖的方法中操作,AFIS这样做是为了立即从后备存储返回对象。然而,当请求最终到达时,它不能以这种方式添加对象。它将它们添加到后备存储中,然后尝试在其上下文中刷新对象。Core Data的创建者并没有预见到这种行为,这导致了不稳定的行为——AFIS有时有很长的响应时间,有时对象不能正确刷新。此外,如果你使用NSFetchedResultsController来馈送表视图,一些回调经常被调用,而一些从不被调用。
我花了很多时间试图让这个工作,但这可能是不可能的-你必须欺骗核心数据,你正在添加对象到上下文,而从来没有这样做。
回到你的问题-如果你真的想使用它-你基本上必须为twitter编写所有这些方法。这是一项艰巨的工作,但twitter必须有一些对象模型和一些id分配给每个对象。我这样做是为了我的API,但这就像一到两天的艰苦工作-我没有那么多的时间在这里写。