Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Sudzc响应故障(iOS ARC)_Objective C_Ios_Soap_Sudzc - Fatal编程技术网

Objective c Sudzc响应故障(iOS ARC)

Objective c Sudzc响应故障(iOS ARC),objective-c,ios,soap,sudzc,Objective C,Ios,Soap,Sudzc,我目前对Sudzc生成的代码有问题。(适用于基于ARC的iOS) 使用生成的代码调用soapweb服务效果很好,当我需要检索响应时,问题就迎刃而解了 我目前处理的呼叫响应如下: -(void)userLoginCompleted:(id)value { if([value isKindOfClass:[NSError class]]) { NSLog(@"%@",value); } if([value isKindOfClass:[SoapFau

我目前对Sudzc生成的代码有问题。(适用于基于ARC的iOS)

使用生成的代码调用soapweb服务效果很好,当我需要检索响应时,问题就迎刃而解了

我目前处理的呼叫响应如下:

-(void)userLoginCompleted:(id)value
{
    if([value isKindOfClass:[NSError class]])
    {
        NSLog(@"%@",value);
    }

    if([value isKindOfClass:[SoapFault class]])
    {
        NSLog(@"%@",value);
    }

    if([value isKindOfClass:[IWWSLoginResult class]])
    {
        IWWSLoginResult *loginData  = (IWWSLoginResult*)value;
        NSLog(@"LoginData Result: %i",loginData.Result);
        NSLog(@"LoginData AccessToken: %@",loginData.AccessToken)
        //Other login related stuff here
    }
}
每当使用NSError或SoapFault调用此代码时,代码运行良好(即,它将解析日志中的错误)

但当使用IWWSLoginResult作为参数调用时,
结果
访问令牌
属性分别为
NO
(null)
,即使Sudzc代码的日志记录显示此
响应开发

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <UserLoginResponse xmlns="[Omitted]">
           <UserLoginResult>
              <Result>true</Result>
              <AccessToken>[Omitted]</AccessToken>              
           </UserLoginResult>
        </UserLoginResponse>
    </soap:Body>
</soap:Envelope>

真的
[省略]
AccessToken和xmlns url未写入,但存在


这是生成的SudzC代码中的错误,还是我的部件中的错误?

SudzC在soap结果消息中检查
标记,但大多数.Net Web服务使用
标记。这很可能使框架认为没有结果,因此将结果的值默认为false或null

要修复此更改,请在SoapRequest.m文件中添加以下元素:

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


我有完全相同的bug,但没有添加“soap:”前缀,而是添加了额外的if语句-if元素为nil,然后尝试查找soap:Body
CXMLNode *element = [[Soap getNode: [doc rootElement] withName: @"soap:Body"] childAtIndex:0];