丢失NSString

时间:2011-02-20 19:42:36

标签: iphone cocoa cocoa-touch ios nsstring

我正在使用NSStringNSDictionaryNSString复制到本地[[NSString alloc] initWithString:],处理它(删除一些字符),然后将其发送到外部对象。

我使用了[[MyObject alloc] initWithString:][myObject setString:]两种方法;无法工作。

他们都让我的应用程序崩溃;当我在给定区域使用断点时,我得到一个空NSString;我从NSLog的开头使用NSString,直到我将它发送到我的对象;它们都显示了字符串的正确值......

谢谢大家的宝贵意见: - )

3 个答案:

答案 0 :(得分:3)

[[NSString alloc] initWithString:stringBeingCopied]调用替换为[[NSMutableString alloc] initWithString:stringBeingCopied],创建一个可变字符串,而不是一个不可变(“正常”)字符串将阻止setString:调用使您的应用崩溃

不可变的字符串是不可变的,不响应setString:calls - 它们是NSString mutators。实现创建一个NSMutableString,实现setString:,将允许您修改字符串对象。

答案 1 :(得分:1)

  

我使用了两种方法[[MyObject   alloc] initWithString:]和[myObject   的SetString:];无法工作。

展示你的作品!没有显示更多代码,无法帮助您。特别是,您是如何在initWithString:课程上实施setString:MyObject的?

答案 2 :(得分:0)

字符串通常是不可变的。要修改字符串,需要NSMutableString。可以执行[string mutableCopy],也可以在initWithString方法中执行此操作。也许你已经这样做了,但请尽可能发布你的代码。如果没有它,我很难提供任何进一步的帮助......