2012-12-18 19 views
11

मुझे रीस्टकिट का उपयोग करने के तरीके के रूप में थोड़ा उलझन में आ रहा है, ऐसा लगता है कि एक ही चीज़ करने के कई तरीके हैं, इससे पहले कि मैं सामग्री के बारे में गड़बड़ कर रहा था इसके साथ ही यह काम करता है, लेकिन अब उसने 0.20.x में ढांचे और उपयोग को बदल दिया है, और मैंने अपने कोड को बदलने में काफी समय बिताया है और अब इसे पहले की तरह काम करने की कोशिश करने में और अधिक समय व्यतीत कर रहा है। और मैंने कुछ उदाहरणों और ऐसे लोगों के लिए डरा दिया है जो लोग उनके लिए काम करने का दावा करते हैं, मेरे लिए इतना कुछ मत करो, इसलिए कहीं अंतर होना चाहिए, इसलिए शायद कोई मुझे निम्नलिखित में अंतर बता सकता है कम से कम उदाहरण 1 & 2 के लिए यह डेटा प्राप्त (जो विफल रहता है, लेकिन यह एक restkit GitHub पर सवाल के लिए है)RestKit 0.2, GET, POST, PUT अनुरोध बनाने के कई तरीके

response.body={ 
"player": [ 
{ 
    "_id": "50585c86ded998e77a000002" 
} 
] 
} 

1.

[[RKObjectManager sharedManager].router.routeSet addRoute:[RKRoute routeWithClass:[Player class] pathPattern:@"player/fbid/:fID" method:RKRequestMethodGET]]; 

और अपने खिलाड़ी, कुछ इस तरह प्राप्त करने के लिए:

Player *player = [Player new]; 
player.playerID = 2; 
[[RKObjectManager sharedManager] getObject:player path:nil parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *result) 
{ 
// Request 
} failure:nil]; 

2.

प्रतिक्रिया का उपयोग कर वर्णनकर्ता।

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:playerWtfMappingIn pathPattern:nil keyPath:@"player" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; 

[[RKObjectManager sharedManager] addResponseDescriptor:responseDescriptor]; 

[tempPlayer setFbID:[result objectForKey:@"id"]]; 

[objectManager getObject:tempPlayer path:nil parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) 
{ 

} 
failure:nil]; 

3.

या वास्तव में RestKit विकी

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:articleMapping pathPattern:nil keyPath:@"articles" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; 

NSURL URL = [NSURL URLWithString:@"http://restkit.org/articles"]; 
NSURLRequest *request = [NSURLRequest requestWithURL:URL]; 
RKObjectRequestOperation *objectRequestOperation = [[RKObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[ responseDescriptor ]]; 
[objectRequestOperation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { 
    RKLogInfo(@"Load collection of Articles: %@", objects); 
} failure:^(RKObjectRequestOperation *operation, NSError *error) { 
    RKLogError(@"Operation failed with error: %@", error); 
}]; 

[objectRequestOperation start]; 

पर खुद उदाहरण के Blakes और मुझे यकीन है वहाँ कई अन्य तरीके हैं रहा हूँ, मेरे संदेह करता है, तो किसी को भी यह पुष्टि कर सकते हैं यह है कि जिस तरह से आपको अपना रास्ता तय करना चाहिए और क्या आप किसी अन्य विधि पर एक विधि का उपयोग करते हैं, उस डेटा सेट द्वारा दृढ़ता से निर्णय लिया जाता है जिसे आप मानचित्र बनाने का प्रयास कर रहे हैं और यह प्रारूप है। फिर फिर से कुछ भी वही काम करने का एक अलग तरीका दिखता है? धन्यवाद

+1

थोड़ा उलझन में मदद करता है, और फिर भी इसका उपयोग करने के तरीके पर सबसे अच्छी शॉर्ट पोस्ट मैं अब तक आया हूं :) –

उत्तर

5

दोनों तरह से सही हैं। वास्तव में, पहला भी बेहतर है, क्योंकि यह RKObjectManager में आपकी सभी कॉन्फ़िगरेशन को केंद्रीकृत करता है। एक परियोजना जो RestKit पर आधारित है के लिए, मैं अत्यधिक तुम ObjectManager रास्ता :)

तुम भी एक कदम आगे जाकर अपने कोड क्लीनर रखने के लिए मार्गों उपयोग शुरू कर सकते का उपयोग सुझाव है कि भाग के बारे में विकी को देखने :)

उम्मीद है कि यह

+0

क्या कोई प्लेयर प्राप्त करने का कोई तरीका है जो आईडी 2 है और नाम जेम्स है ?? –

संबंधित मुद्दे