【问题标题】:iPhone Strange problem with NSStringNSString 的 iPhone 奇怪问题
【发布时间】:2009-10-15 09:31:57
【问题描述】:

我有以下代码被多次调用:

NSString *Final = [ NSString stringWithFormat:@"%@%@%@%@.%@%@", str1, str2, str3, str4, str5, str6];

每隔一段时间,最终字符串设置为 nil,而 str1 ... 到 str6 是完全有效的字符串(我已经在调试器中验证过)!

我原来有这个代码,但每隔一段时间Final也是一个无效指针

NSString *Final = [ [NSString alloc] initWithFormat:@"%@%@%@%@.%@%@", str1, str2, str3, str4, str5, str6]; ... [最终版本];

我非常困惑。这可能是什么?

基本上我从各种编辑框中收集值,从这些值形成一个字符串,并最终将其转换为数字。

谢谢!

【问题讨论】:

  • 您已提出 15 个问题但未接受任何答案。

标签: iphone nsstring


【解决方案1】:

这是一个笨拙的选择。 如果您的线路不起作用,请尝试以下操作:

NSString * finalstr = str1;
finalstr = [finalstr stringByAppendingString:str2];
finalstr = [finalstr stringByAppendingString:str3];
finalstr = [finalstr stringByAppendingString:str4];
finalstr = [finalstr stringByAppendingString:str5];
finalstr = [finalstr stringByAppendingString:str6];

顺便说一句,我曾经避免将那些常用的保留字作为我的变量名(尽管 final 不是 Objective-c 的保留字)。

【讨论】:

  • 投反对票:非等效解决方法。另外:避免错误而不是发现是一个坏主意。
  • 同意并感谢您的评论。另一方面,提到这个问题,似乎这条线根本没有问题。那么,Leon,能否把 str1 - str6 的内容贴出来供我们参考?
  • 我最终使用纯 C 指针重写了代码(我在过去 15 多年中一直在使用)。我有 char 字符串 [7]。然后我用相应的数字填充每个 char [i],将 NULL 放在最后一个值并创建,然后调用 decimalNumberFromString(或 atof 或 atoi)
  • 真的会以如此复杂的方式结束吗?组合字符串时我没有问题。
猜你喜欢
  • 2011-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多