从不同的类创建NSString

时间:2013-05-06 01:52:39

标签: iphone ios objective-c nsstring

我有一个从SOAP方法接收结果的方法:

SDZPaymentResult* result = (SDZPaymentResult*)value;

如果我使用:NSLog(@"%@", result);

它显示:

<CXMLElement 0x20d9c950 [0x20dccc40] ns1:paymentResult 
<ns1:paymentResult>
<additionalData xmlns="http://payment.services.adyen.com" xsi:nil="true"/>
<authCode xmlns="http://payment.services.adyen.com">76419</authCode>
<dccAmount xmlns="http://payment.services.adyen.com" xsi:nil="true"/>
<dccSignature xmlns="http://payment.services.adyen.com" xsi:nil="true"/>
<fraudResult xmlns="http://payment.services.adyen.com" xsi:nil="true"/>
<issuerUrl xmlns="http://payment.services.adyen.com" xsi:nil="true"/>
<md xmlns="http://payment.services.adyen.com" xsi:nil="true"/>
<paRequest xmlns="http://payment.services.adyen.com" xsi:nil="true"/>
<pspReference xmlns="http://payment.services.adyen.com">8813677969778790</pspReference>
<refusalReason xmlns="http://payment.services.adyen.com" xsi:nil="true"/>
<resultCode xmlns="http://payment.services.adyen.com">Authorised</resultCode>
</ns1:paymentResult>>

有办法将结果更改为NSString吗?

3 个答案:

答案 0 :(得分:4)

%@格式说明符调用对象的description方法,该方法将返回您要查找的NSString。但是你可能想重新考虑你的解决方案,这不是description的用途,如果它不是你的一个类,返回的值可能会改变并破坏你的代码!检查是否没有其他方法以更可靠的方式获取数据。

答案 1 :(得分:0)

正如@JustSid所说,你可以用另一种方式:

NSLog(@"%@", result.description);

你的方式和方式是一样的,所以如果你想改变“结果”,你必须改变描述方法的返回值,如果你想改变它,你必须是“结果”类的所有者”

我认为你必须继承“结果”类,你可以做任何你想做的事情!

答案 2 :(得分:-1)

使用NSString格式化程序:

NSString *newString = [NSString stringWithFormat:@"%@", result];