2011-12-27 18 views
10

के साथ सुडज़ैक मैं सूडज़क का उपयोग कर एक वेब सर्विसेज प्राप्त करने की कोशिश कर रहा हूं। जब भी मैं अपने डब्लूएसडीएल को स्वचालित संदर्भ के बिना obj-c में परिवर्तित करता हूं तो यह ठीक काम करता है। समस्या यह है कि, हम अब हमारे सभी एप्लिकेशन आईओएस 5 में बना रहे हैं और हमारा सभी कोड एआरसी का उपयोग करता है। सुडज़ैक अब आपको एआरसी सक्षम के साथ एक बंडल बनाने की अनुमति देता है लेकिन जब मैं इस कोड को चलाता हूं तो यह हमेशा शून्य हो जाता है।आईओएस 5 और एआरसी

मैंने सुडज़ कोड को डीबग करने का प्रयास किया और इसे सेवा से एक सही एक्सएमएल प्रतिक्रिया प्राप्त हुई। कहीं अनुवाद में कुछ खो गया है। मैंने एआरसी सक्षम के साथ कोड में एआरसी के बिना काम कर रहे सुडज़ैक कोड को परिवर्तित करने की कोशिश की लेकिन जैसे ही मैंने सभी त्रुटियों को ठीक किया है, यह फिर से शून्य हो जाता है।

क्या किसी को इसका सामना करना पड़ा और पता था कि क्या गलत हो रहा है? मेरे द्वारा पूरे सुडज़ैक कोड को डीबग करने के लिए मुझे बहुत समय बचाएगा।

+0

हमेशा 12 मिनट साहस एक सवाल मैं समाधान पोस्ट करने के लिए पाने के बाद के रूप में। Sud -c कक्षाओं को -no-objc-arc के साथ फ़्लैग किया गया और अब मैं पुराने वर्किंग कोड का उपयोग कर सकता हूं। Obj-c के एक बिल्कुल नए उपयोगकर्ता के रूप में मुझे पता नहीं था कि अस्तित्व में है .. – Twan

+0

मुझे एक ही समस्या का सामना करना पड़ रहा है और शायद आपके से एक नया उपयोगकर्ता है :) मैं ईमानदारी से नहीं जानता कि आपके साथ फ़्लैगिंग के साथ क्या मतलब है -objc-arc, क्या आप इसे समझा सकते हैं? –

+0

इसे उत्तर देने के रूप में पोस्ट करने पर विचार करें और इसे स्वीकार करने के लिए चिह्नित करें ताकि इस प्रश्न को हल किया जाएगा। जब आप इसमें हों तो आप @Stefan Jansson की टिप्पणी को भी संबोधित करना चाहेंगे। – BoltClock

उत्तर

16

मेरे मामले में (आईओएस के लिए एआरसी के साथ एसयूडीजेसी), मैंने सोपआरक्वेट.एम फ़ाइल में फोल्डिंग कोड को बदल दिया है;

CXMLNode* element = [[Soap getNode: [doc rootElement] withName:@"Body"] childAtIndex:0]; 

CXMLNode* element = [[Soap getNode: [doc rootElement] withName:@"soap:Body"] childAtIndex:0]; 

साथ

किसी तरह संबंधित समारोह के साथ नाम "द बॉडी" मूल तत्व के लिए खोज रहा है। साबुन लिफाफे का निरीक्षण करने के बाद रूट तत्व का नाम "साबुन: शरीर" देखना आसान है।

+3

धन्यवाद धन्यवाद आपको धन्यवाद! मैं इस मुद्दे पर दो दिनों तक फंस गया था और यह वही फिक्स था जिसकी मुझे आवश्यकता थी। –

+0

बहुत बहुत धन्यवाद! मेरे लिए इसे – Mattias

+0

धन्यवाद। इसके अलावा, अगर यह ilyasd काम नहीं करता है, तो '@ "साबुनव को आज़माएं:' @" साबुन के बजाय शरीर "' "। – inket

0

मेरे मामले में "env: body" काम किया। अपने रिटर्न एक्सएमएल (प्रिंटिंग द्वारा) की जांच करें और उचित रूप से

1

मेरी वेब सेवा जावा में एक्सीस ग्रहण के साथ बनाई गई थी।

चाप के लिए

मैं का उपयोग करें: "soapenv:Body"

और फ़ाइल SoapObject.m में मैं

#import "Soap.h" 
#import "SoapObject.h" 
0

जोड़ने मेरे मामले में यह एक नेट वेब सेवा (WCF) था और मैं रों का इस्तेमाल किया था: बॉडी: CXML दस्तावेज़ प्रिंट से बाहर मिला:

:

CXMLNode* test = [doc rootElement]; 
NSLog(@"%@",test); 

यहाँ मैं यह मिल गया

<CXMLElement 0x68c1a50 [0x68c1b10] s:Envelope <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><**s:Body**><GetUserIDResponse xmlns="http://tempuri.org/"><GetUserIDResult>8</GetUserIDResult></GetUserIDResponse></s:Body></s:Envelope>> 

पिछले पोस्ट के लिए धन्यवाद मैं यह पता लगाने के लिए कर रहा था और अपने ब्लॉग पर फिर से पूरा उत्तर पोस्ट: http://www.dailycode.info/Blog/post/2012/08/07/SUDZC-webservices-always-return-0-(WCF-web-service-and-IOS-client).aspx

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