gpt4 book ai didi

objective-c - Sudzc响应出现问题(iOS ARC)

转载 作者:行者123 更新时间:2023-12-01 19:16:35 24 4
gpt4 key购买 nike

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

使用生成的代码调用Soap Web服务可以正常工作,这是我需要检索响应时出现的问题。

我目前正在处理这样的电话回复:

-(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作为参数调用它时,即使Sudzc代码的日志记录显示此 ResultAccessTokenNO属性分别是 (null)ResponseEnvelope:
<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 and xmlns-url ommitted, but present
这是生成的SudzC代码中的错误,还是我个人的错误?

最佳答案

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

要解决此问题,请更改SoapRequest.m文件中的以下元素:

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


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

关于objective-c - Sudzc响应出现问题(iOS ARC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12916602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com