Как вы сопоставляете AFIncrementalStore с Twitter API v1.1?

Как вы наносите на карту 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;

1 ответ

Я не знаю, если то, что я пишу, действительно полезно, но вот что я знаю:

AFIncrementalStore имеет некоторые серьезные проблемы и, по-видимому, заброшен создателем, поскольку он несовместим с AFNetworking v. 2

Проблемы возникают из-за того, что АДИС пытается быть не просто добавочным хранилищем. Инкрементное хранилище работает только внутри своих переопределенных методов, и AFIS делает это для немедленного возврата объектов из резервного хранилища. Однако, когда запрос наконец приходит, он не может добавлять объекты таким способом. Он добавляет их в резервное хранилище, а затем пытается обновить объекты в их контекстах. Это поведение не было обнаружено разработчиками Core Data и приводит к нестабильному поведению - иногда у AFIS очень большое время отклика, а иногда объекты не обновляются должным образом. Кроме того, если вы используете NSFetchedResultsController для подачи табличных представлений, некоторые обратные вызовы часто вызываются, а некоторые - никогда.

Я потратил много времени, пытаясь заставить это работать, но это, вероятно, невозможно - вы должны обмануть основные данные, что вы добавляете объекты в контекст, при этом никогда не делая этого.

И вернемся к вашему вопросу - если вы действительно хотите его использовать - вы должны написать все эти методы для твиттера. Это тяжелая работа, но Twitter должен иметь некоторую объектную модель и некоторые идентификаторы, назначенные для каждого объекта. Я сделал это для своих API, но это как один или два дня тяжелой работы - и у меня не так много времени, чтобы написать это здесь.

Другие вопросы по тегам