目标c中的NSString内存警告

时间:2011-03-25 04:15:39

标签: objective-c

    NSString * str1 = nil;
    NSString * str2 = nil;
    str1 = @"";
    str2 = @"";

我收到内存警告“存储到'str1'的值永远不会被读取”在上面的语句中。  有没有其他方法可以做同样的事情?

1 个答案:

答案 0 :(得分:7)

警告:

Value stored to 'str1' is never read

只是告诉你,你有一个你设置但从不使用的变量。你会看到同样的事情:

static void xyzzy (void) {
    int plugh = 7;
}

显然没有使用plugh变量。

这不是一个严重的问题(否则这将是一个错误,而不是一个警告),但它确实通知你:

  • 你在浪费空间(如果你正在设置它,可能还有时间);或
  • 这可能表示另一个问题。

后者的一个例子是,如果您在意图使用str2的地方意外使用str1(可能是因为您忘记更改粘贴的代码而进行剪切和粘贴)。

至于如何修复它:

  • 如果你真的没有使用它(并且无意使用它),那就摆脱它吧。
  • 如果您 要使用它,暂时将其评论将消除警告,直到您这样做。
  • 如果您认为 应该使用它,那么您在其他地方遇到问题,您应该追踪它。