2011-10-26 11 views
8

के लिए रेस्टकिट में पोस्ट ऑब्जेक्ट करते समय प्रतिक्रिया को अनदेखा करें, मैं अपने डब्ल्यूसीएफ डेटा सेवाओं से कनेक्ट करने के लिए रेस्टकिट का उपयोग कर रहा हूं।आईओएस

मुझे प्रतिक्रिया मैपिंग समस्याओं के कारण RKObjectManager के postObject फ़ंक्शन का उपयोग करके एक इकाई जोड़ने के साथ समस्याएं हैं।

जब कोई इकाई जोड़ दी जाती है, डब्ल्यूसीएफ डाटा सर्विसेज 201 स्टेटस कोड और नई अतिरिक्त इकाई (प्रतिक्रिया के रूप में) देता है।

क्या प्रतिक्रिया को अनदेखा करना संभव है और यह देखने के लिए कि स्थिति सफल हुई है या नहीं, केवल स्टेटस कोड का उपयोग करना संभव है?

Ponnu

उत्तर

1

क्यों आप सर्वर से लौटे नए जोड़े इकाई अनदेखा करना चाहते हैं? मैपिंग का परिणाम सर्वर के एक के साथ अपने स्थानीय प्रतिनिधित्व को सिंक में रखने के लिए उपयोगी है। सर्वर ने ऑब्जेक्ट आईडी जैसे आपके ऑब्जेक्ट के कुछ फ़ील्ड को अधिलेखित कर दिया हो और आप इसका ट्रैक रखना चाहते हैं।

यदि आपके पास मैपिंग त्रुटि है तो शायद यह संभव है क्योंकि POST कार्रवाई की प्रतिक्रिया आपके ऑब्जेक्ट का प्रतिनिधित्व करती है जो एक जीईटी के साथ लौटाई गई है।

- (RKObjectLoader*)postObject:(id<NSObject>)object mapResponseWith:(RKObjectMapping*)objectMapping delegate:(id<RKObjectLoaderDelegate>)delegate

बजाय और डेटा नहीं दिया के लिए एक अधिक उपयुक्त मानचित्रण निर्दिष्ट करें: आप उपयोग करने की कोशिश की है?

0

समस्या यहां आरईएसटी सेवा को बदलने के लिए हो सकती है, इसलिए पोस्टबैक को किसी निश्चित संसाधन पथ पर पोस्टऑब्जेक्ट कॉल के मामले में कॉलबैक को अनदेखा करना एक आसान समाधान होगा।

- (void)objectLoader:(RKObjectLoader *)objectLoader didFailWithError:(NSError *)error { 
if ([objectLoader wasSentToResourcePath:@"/rest/api/returns/201" method:RKRequestMethodPOST] && [[objectLoader response] statusCode]==201) { 
    NSLog(@"Object created"); 
} else { 
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Communication error" 
                 message:[NSString stringWithFormat:@"Received status code %d: %@",                        objectLoader.response.statusCode,                        error.localizedDescription]               delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    [alertView show]; 
} 
0

एक छोटा आरकेओब्जेक्ट मैपिंग बनाएं जो प्रतिक्रिया में किसी भी पैरामीटर की परवाह नहीं करता है।

[RKObjectMapping mappingForClass: [NSNull class]];