對不起也許會問一些愚蠢的問題,但我仍然遇到Objective-C語法的問題。 所以,我從我的sudzc.com生成的代碼中得到了這個SOAP響應。它應該包含一個SQL SELECT結果,其中包含veh_id
和version
作爲列。如何訪問sudzc.com SOAP結果中的數組字段?
我能得到什麼作爲響應對象是一個的NSMutableArray,
NSMutableArray* soapArray = (NSMutableArray*)value;
所以我穿行:
unsigned count = [soapArray count];
while (count--) {
id myobj = [soapArray objectAtIndex:count];
NSLog(@"myobj: %@", myobj);
}
我得到的打印輸出是一樣的東西:
myobj: {
item = {
key = version;
value = 1;
};
對於SQL結果的每一行。如果這是數組元素的打印輸出,爲什麼只有version
列而不是veh_id
列?
如何訪問類型爲id
的對象myobj
上的密鑰值?我必須首先投射嗎?
這是字符串從Zend皁服務器返回的XML:
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.[myurl].com/soap" xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:getActiveVehiclesResponse><return SOAP-ENC:arrayType="ns2:Map[23]" xsi:type="SOAP-ENC:Array"><item xsi:type="ns2:Map"><item><key xsi:type="xsd:string">veh_id</key><value xsi:type="xsd:string">1</value></item><item><key xsi:type="xsd:string">version</key><value xsi:type="xsd:string">1</value></item></item><item xsi:type="ns2:Map"><item><key xsi:type="xsd:string">veh_id</key><value xsi:type="xsd:string">3</value></item><item><key xsi:type="xsd:string">version</key><value xsi:type="xsd:string">1</value></item></item><item xsi:type="ns2:Map"><item><key xsi:type="xsd:string">veh_id</key><value xsi:type="xsd:string">4</value></item><item><key xsi:type="xsd:string">version</key><value xsi:type="xsd:string">1</value></item></item></return></ns1:getActiveVehiclesResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
XML字符串看起來很好 - 你正在談論哪種處理程序方法? – Nachtkrapp
在調用服務時,我們在參數中指定爲選擇器的任何操作,該操作方法的參數是id,如果該類型是自定義數組類型,則該參數僅顯示第一個元素(或無)。看上面的例子。 –
所以我應該用什麼來取得完整的數組返回? – Nachtkrapp