如何将AFIncrementalStore映射到Twitter API v1.1



如何将AFIncrementalStore映射到Twitter API v1.1?


Core Data Persistence with AFNetworking, Done Right

https://github.com/AFNetworking/AFIncrementalStore

REST 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,但这就像一到两天的艰苦工作-我没有那么多的时间在这里写。

相关内容

  • 没有找到相关文章

最新更新