【问题标题】:iPhone application error. NSString with whitespaceiPhone 应用程序错误。带有空格的 NSString
【发布时间】:2012-07-01 18:35:48
【问题描述】:

我的 iPhone 应用程序出现重大问题。我的问题似乎很基本,但我无法找出错误的原因。我有一个由用户输入设置的 NSString saveDescription。

 savede = civilsJobDescTb.text;

然后我调用 NSLog 来检查字符串是否已设置,确实如此。所以我没有问题。

稍后在程序中,我创建了一个包含多个详细信息的 PDF 文件。除了我之前设置的 NSString 之外,一切正常。似乎字符串不再存在。我从中得到一个错误。 EXC_BAD_ACCESS 或类似的东西。

现在是奇怪的事情。仅当我在文本框中有空格时才会发生这种情况。例如:我输入“ok”,它将毫无问题地工作。但是,如果我输入“一切正常”,则会出现错误。

我看不出问题出在哪里。有什么想法吗?

【问题讨论】:

  • 如果没有任何实际代码将很难提供帮助。
  • 我知道你的意思,但我不能发布所有的代码。如果我知道问题出在哪里,那么我可以发布该部分。基本上我只是想知道是否有一些内存管理问题会重置或擦除 NSString?

标签: objective-c nsstring whitespace


【解决方案1】:

您没有指定您的“savede”是否是 ivar(实例变量),但假设它是,

如果您使用的是 ARC,请为其设置一个强属性:

@property (nonatomic, strong) NSString * savede;

self.savede = civilsJobDescTb.text;

如果您不使用 ARC,请确保在设置后保留“savede”字符串。比如:

 savede = civilsJobDescTb.text;
 [savede retain];

(确保在你真正完成它时释放它)。

您还可以制作字符串的副本(以防它来自的标签消失,或被清除,或不知何故消失)。

[savede setString: civilsJobDescTb.text];
[savde retain];

【讨论】:

  • 你也可以使用saved = [civilsJobDescTb.text copy];复制字符串
  • 完美,现在可以使用了。似乎[保存保留];是我所缺少的。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-29
  • 1970-01-01
  • 2012-11-20
相关资源
最近更新 更多