2011-06-01 74 views
-3

我已经做了很多次之前,从来没有问题,但我现在有问题,我无法解决。问题与NSString

我在H文件中声明了一个NSMutableString。命名为TheString。 我有一个名为TextField的UItextfield的IBOutlet 在viewdidload中,我用一些文本填充这个字符串。这很好,当我NSLOG它一切正常。

然后在一个按钮按下我做的:

TheString = [TheString stringByReplacingOccurrencesOfString:@"And" 
withString:TextField.text];               

我已经这样做了负载的时候,它总是有效。但是,这次我没有任何错误地构建应用程序,然后按下按钮并崩溃。我检查了控制台,当它崩溃时没有错误。 编辑

在.h文件我有这个也:

@property(nonatomic, retain) NSMutableString *TheString; 

而且在viewDidLoad中我这样做

TheString = [NSMutableString alloc]; 

而且我合成 我给它一些文字的NSLog它,它是所有的工作。 如果有人可以请帮助我,这将是伟大的!

谢谢

+1

什么是回溯你在XCode中得到什么?总会有某种回溯。但它看起来像你没有连接UIBuilder中的IBOutlet。 – grundprinzip 2011-06-01 10:38:50

+0

清理,编译然后运行... – Jhaliya 2011-06-01 10:38:59

+0

在按钮处理程序中放入一个NSlog或断点并查看它是否被调用。因为您声称它是在H文件中声明的,请检查TheString是否被正确分配并保留。 – Krishnabhadra 2011-06-01 10:39:11

回答

0

您是否分配了TheString

试试这个

TheString = [[NSMutableString alloc] initWithString:@"Some text here"]; 
TheString = [TheString stringByReplacingOccurrencesOfString:@"And" withString:TextField.text]; 

确保你release它你做的时候用它

+1

请注意,您在上面的代码中泄漏了原始字符串。 – Caleb 2011-06-01 10:47:12

0

TheString = [NSMutableString alloc];不应该做的。将其更改为

TheString = [[NSMutableString alloc] init]; 

和按钮事件调用后

[TheString replaceOccurrencesOfString: @"And" 
withString: TextField.text options: 0 range: NSMakeRange(0, [receiver length])]; 
+0

感谢您的回复!我已经尝试过,但它没有什么不同。 – ApiMail 2011-06-01 11:08:08

+0

如果TextField.text为零,请使用调试器进行检查。 – dasdom 2011-06-01 11:19:27

+0

2个问题的答案[email protected],如果你不想改进/改变你的答案编辑你的原始答案本身。通过给出多个答案不垃圾垃圾论坛 – Krishnabhadra 2011-06-01 11:22:35