如何将AFIncrementalStore
映射到Twitter API v1.1?
AFNetworking核心数据持久性,做得好
https://github.com/AFNetworking/AFIncrementalStore
REST API v1.1资源
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;
答案 0 :(得分:2)
我不知道我写的内容是否真的有用,但这就是我所知道的:
AFIncrementalStore有一些严重的问题,显然已被它的创作者抛弃,因为它与AFNetworking v.2不相容
问题源于AFIS试图不仅仅是增量存储这一事实。 增量存储仅在其覆盖方法内运行,AFIS执行此操作以立即从后备存储返回对象。但是,当请求最终进入时,它无法以这种方式添加对象。它将它们添加到后备存储,然后尝试刷新其上下文中的对象。 Core Data创建者没有想到这种行为,导致行为不稳定 - AFIS有时会有很长的响应时间,有时对象无法正常刷新。此外,如果您使用NSFetchedResultsController来提供表视图,则会经常调用某些回调,而从不会调用某些回调。
我花了很多时间试图让这个工作,但它可能是不可能的 - 你必须欺骗你正在向上下文添加对象的核心数据,而从不这样做。
回到你的问题 - 如果你真的想要使用它 - 你基本上必须为twitter编写所有这些方法。这是一项艰苦的工作,但twitter必须有一些对象模型,并为每个对象分配一些id。我为我的API做了这个,但这就像一两天的辛苦工作 - 我没有那么多时间在这里写。