【问题标题】:NSString memory leak [closed]NSString 内存泄漏
【发布时间】:2009-12-26 07:35:44
【问题描述】:
//opening DB
if(sqlite3_step(statement) == SQLITE_ROW)
    result = [NSString stringWithUTF8String:(char*)sqlite3_column_text(statement,0)];  //!
else
    result nil;
return result;
//close DB

【问题讨论】:

标签: objective-c memory nsstring memory-leaks


【解决方案1】:

这实际上不是内存泄漏。 NSString 将被自动释放,sqlite3_column_text 返回的char* 将在下一个 step/reset/finalize 调用期间被 sqlite 清理。

【讨论】:

  • 是的,有时分析无法识别这样的构造函数,并认为它们不是泄漏。
  • 您需要发布分析器的实际输出。它应该认识到这一点就好了。
【解决方案2】:

字符串应该由 stringWithUTF8String 自动释放,您是在 iPhone 上还是在模拟器上测试内存泄漏?通常模拟器代码只是一个触摸错误 - 在设备本身上尝试它

【讨论】:

  • 是的,我正在模拟器上进行测试,因为设备调试真的很慢:( 10x 的答案,可能是一个有问题的模拟器
猜你喜欢
  • 2011-10-31
  • 1970-01-01
  • 2012-10-29
  • 2014-06-06
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 2011-10-05
  • 1970-01-01
相关资源
最近更新 更多