我是Objective C中的新手。我試圖使用sudcz來使用webservice。 我已經在PHP和MySQL中創建了Webservice服務器,現在我想與服務器交流並獲得相關結果。Objective C - sudzc,返回空的ArrayOfString,但xml響應包含數據
在調用方法時,我從服務器獲取了正確的XML響應,但返回的ArrayOfString類型的對象似乎爲空。 NSLog打印只是< ArrayOfString> </ArrayOfString>,我假設sudzc不是爲了解析XML到一個aproporiate形式,因此返回的對象是空的,我錯了嗎?或者我不能看到或處理返回的對象?有人得到任何線索嗎?
如果有任何需要的材料,我會發布它們。 Thx。
補充:
CXMLElementNode* element = [[Soap getNode: [doc rootElement] withName: @"Body"] childAtIndex:0];
if(deserializeTo == nil) {
output = [Soap deserialize:element];
} else {
NSLog(@"Deserialize to : %@", deserializeTo);
if([deserializeTo respondsToSelector: @selector(initWithNode:)])
//problematic section
element = [element childAtIndex:0];
NSLog(@"NSSstring element : %@", element);
output = [deserializeTo initWithNode: element];
} else {
NSString* value = [[[element childAtIndex:0] childAtIndex:0] stringValue];
NSLog(@"NSSstring value : %@", value);
output = [Soap convert: value toType: deserializeTo];
}
NSLog(@"output : %@", output);
}
我認爲存在問題的部分就是我的推杆意見存在問題的部分。因爲object元素是xml元素,並且在調用output = [deserializeTo initWithNode:element]之後,沒有任何反應,NSLog(輸出)在調用消息之前打印與打印NSLog(deserializeTo)相同的輸出initWithNode:元素對象deserializeTo 我懷疑SoapObject實例方法initWithNode它不會像它應該那樣工作,因爲 我的deserializeTo是類RSiArrayOfstring的一個實例,該類是SoapObject的子集,它將此消息委託給父類(SoapObject),並且在SoapObject中實現此消息的方法是:
// Called when initializing the object from a node
- (id) initWithNode: (CXMLNode*) node {
if(self = [self init]) {
}
return self;
}
我不能看到與自變量節點任何操縱
執行此代碼期間從調試器的輸出:
2012-02-08 20:22:03.166 URS[1170:b603] Deserialize to : <ArrayOfstring></ArrayOfstring>
2012-02-08 20:23:17.258 URS[1170:b603] NSSstring element : <CXMLElement 0x5d7b920 [0x59701b0] return <return arrayType="SOAP-ENC:Array[6]" type="SOAP-ENC:Array">< item arrayType="xsd:string[1]" type="SOAP-ENC:Array">< item type="xsd:string">1 - Elektroúdržba</item>< /item>< item arrayType="xsd:string[1]" type="SOAP-ENC:Array">< item type="xsd:string">2 - Zámočnícka dielňa< /item>< /item>< item arrayType="xsd:string[1]" type="SOAP-ENC:Array">< item type="xsd:string">3 - Údržba žeriavov</item>< /item>< item arrayType="xsd:string[1]" type="SOAP-ENC:Array">< item type="xsd:string">6 - Zámočnícká dielňa H4< /item>< /item>< item arrayType="xsd:string[1]" type="SOAP-ENC:Array">< item type="xsd:string">4 - Mechanici< /item>< /item>< item arrayType="xsd:string[1]" type="SOAP-ENC:Array">< item type="xsd:string">5 - Údržba CNC< /item>< /item>< /return>>
2012-02-08 20:56:11.353 URS[1170:b603] output : < ArrayOfstring>< /ArrayOfstring
sudcz我相信包括所有的來源,你有沒有嘗試過調試它? – Joe 2012-02-08 15:01:48
關於sudcz,我將服務對象上的對象設置爲yes,我也是xcode中的新手,我使用的是xcode 4.x.你能否建議我用sudze調試任何步驟? – feko 2012-02-08 15:06:32
開始[這裏](https://developer.apple.com/library/mac/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/Debugging/Debugging.html),如果你發現原因,什麼或者哪裏不工作,那麼用你的發現編輯你的答案,它會更容易幫助你。 – Joe 2012-02-08 15:14:06