【问题标题】:Problem with NSStringNSString 的问题
【发布时间】:2011-06-01 10:32:56
【问题描述】:

我以前做过很多次,从来没有遇到过问题,但现在我遇到了一个问题,我无法解决。

我在 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 它,一切正常。 如果有人可以帮我解决这个问题,那就太好了!

谢谢

【问题讨论】:

  • 你在 XCode 中得到的回溯是什么?总是有某种回溯。但看起来你没有在 UIBuilder 中连接 IBOutlet。
  • 在按钮处理程序中放置一个 NSlog 或断点,看看它是否被调用。还要检查 TheString 是否被正确分配和保留,因为你说它是在 H 文件中声明的。
  • 添加你初始化TheString的代码
  • 插座已连接,我已尝试干净构建并运行。谢谢你的回答。我将使用初始化代码编辑我的原始帖子。感谢您的回答和回复!
  • 您需要显示更多代码,并且由于您正在崩溃,您应该按照@grundprinzip 的要求显示堆栈跟踪的相关部分。

标签: iphone nsstring


【解决方案1】:

你分配TheString了吗。

试试这个

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

用完后确保release

【讨论】:

  • 请注意,您在上面的代码中泄漏了原始字符串。
【解决方案2】:

这个TheString = [NSMutableString alloc]; 不应该做。改成

TheString = [[NSMutableString alloc] init];

在按钮事件调用之后

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

【讨论】:

  • 感谢您的回复!我试过了,但没有什么不同。
  • 使用调试器检查 TextField.text 是否为 nil。
  • 一个问题的 2 个答案..@dasdom 如果您不想改进/更改答案,请自行编辑原始答案。不要通过给出多个答案来向论坛发送垃圾邮件
  • @Krishnabhadra 好的,抱歉。我不想在论坛发垃圾邮件。我认为这个答案是另一个话题。以后不会这样了。
  • 然后删除你认为没有回答问题的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多