2013-07-13 10 views
5

AFIncrementalStore kullanarak Çekirdek Veri modelim var ve bu modelin nesnelerinin bir listesini almak için birden çok REST API uç noktası var. Ben şöyle AFHTTPClient içinde -requestForFetchRequest:withContext: geçersiz kılabilirsiniz:AFIncrementalStore'da tek bir varlık türünü almak için birden fazla URL isteğim nasıl olabilir?

Bu snippet'inde
- (NSURLRequest *)requestForFetchRequest:(NSFetchRequest *)fetchRequest 
         withContext:(NSManagedObjectContext *)context { 

    NSMutableURLRequest *mutableURLRequest = nil; 
    if ([fetchRequest.entityName isEqualToString:@"Post"]) { 
     mutableURLRequest = [self requestWithMethod:@"GET" path:@"/posts/foo" parameters:nil]; 
    } 
    return mutableURLRequest; 
} 

, ben /posts/foo de Post nesneleri almak, ama ben de /posts/bar den başka bir set almak gerekir.

Bunu nasıl yapabilirim? Gördüğüm tek çözüm iki model yapmaktır: biri foo için ve bir tane bar için, ancak kendiniz tekrarlamak topal, ve bana destek olması gereken Post nesnesi almak için daha fazla API uç noktası olabilir. Kaybettiğim başka bir yaklaşım var mı?

+1

'/ posts/foo' veya'/posts/bar' isteyip istemediğinize nasıl karar veriyorsunuz? Örneğin, farklı kullanıcılar tarafından bu nesneleri gönder? Şu anda "foo" veya "bar" gönderilerini aradığınızı belirlemek için "fetchRequest" yi kontrol edebilir misiniz? –

+0

Benim durumumda, konuştuğum API'nın, tek bir tablo görünümünde hem Foo hem de Bar Gönderinin listelenmesini istediğim bir ekran var. Yayın modelim, hangi tür olduğunu belirten bir özelliğe sahip, bu yüzden belki de 'fetchRequest.predicate.predicateFormat''a bakıp bu yolu belirleyebilir miyim? – greenisus

+0

Evet, sizin durumunuza benziyor, 'fetchRequest'i sadece 'entityName' öğesine bakmaktan daha yakından incelemeniz gerekiyor. Ayrıca, veri modelinize bağlı olarak 'fetchRequest.propertiesToFetch' veya başka şeylere de bakabilirsiniz. İki istek göndermeniz gerekecek, bu yüzden farkı anlayabildiğinden emin olun. –

cevap

2

entityName'a bakmaktan çok fetchRequest daha yakından incelemeniz gerekir. Ayrıca veri modelinize bağlı olarak fetchRequest.propertiesToFetch veya başka şeyler de bakabilirsiniz. İki istek göndermeniz gerekiyor, bu yüzden AFNetworking alt sınıfınızın farkı anlayabildiğinden emin olun.

Ayrıca: requestForFetchRequest:withContext: yönteminizin gerçekten büyük olabileceği anlaşılıyor. NSManagedObject alt sınıfınızı aldığınız daha genel bir model düşünebilir ve bir istek isteği döndürmesini isteyin.

İlgili konular