iphone sdk nsstring作为对象 - 获取文本

时间:2010-08-09 10:12:25

标签: iphone cocoa string nsstring

我遇到了从Web服务返回的字符串的问题。我在头文件中设置了字符串,使用

简单
NSString *serviceUserID;
@property (nonatomic, retain) NSString *serviceUserID;

然后我正常合成它。我可以使用

设置它
serviceUserID = @"4fffrdscfbg-44-06dfgf-dfgdfg-32eer456134";

但是当使用服务返回设置它时,它似乎保存了一个我以后无法访问的对象。所以下面的代码不起作用......

NSLog(@"result = %@", result);
serviceUserID = result;

上面的代码会将serviceUserID字符串输出到日志窗口,但是当我尝试在该函数之外执行相同操作时,它会崩溃而没有错误消息。我不知道发生了什么事。我试图用initWithFormat和所有排序设置字符串,但没有任何工作!我只需要设置serviceUserID变量,这样我就可以在其他函数中使用它...有没有办法设置我错过的文本?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您需要保留分配给iVar的字符串值 - 在您的示例中,您可能会分配自动释放的字符串,该字符串在当前范围之外变为无效。正如您已为其声明属性,正确的方法是:

self.serviceUserID = result;

serviceUserID = @"4fffrdscfbg-44-06dfgf-dfgdfg-32eer456134";工作的原因是你在这里分配字符串文字 - 它是在编译时创建的,根本不会被释放。