在我的代码中,我正在使用.txt文件构建数据核心数据库。目前我在桌面上有该文件,并具有该文件的硬编码路径。我还使用NSLog语句跟踪数据库的负载,当我加载新数据库时,该语句显示在终端中。构建&分析说明我在NSLog的“存储到xx的值永远不会被读取”中用于跟踪的参数。但是,我确实在NSLog中使用xx来计算我正在加载的记录。
我在输入字段中使用了一个秘密且非常长且特定的单词来开始加载数据库。此字段通常用于其他内容。
我有以下问题:
“存储到xx的值是否永远不会被读取”被视为泄漏?我猜不是。
启动应用程序以使NSLog和xx仍然在代码中时是否存在问题,或者我应该将其注释掉吗?
我在Apples文档中读到,不允许在包外引用,我猜想如果我想使用这种方法我也应该将.txt放在包中?
由于我不希望.txt文件在包中,管理数据库负载的建议是什么?我应该加载数据库,然后可能注释掉我发送到app-store的代码中的所有相关代码,以删除应用程序旁边的引用或有更好的方法吗?
干杯
答案 0 :(得分:0)
此消息不是泄漏。这是一个提示,你将变量设置为一个值,然后永远不会读取该值(因此首先设置变量是没有意义的)。例如:
- (void) fooFun {
int i = 1;
NSLog(@"Hello: %d", i);
i = 3; // <- value stored to i is never read (thus this line is redundant)
return;
}
不,Apple确实建议删除NSLog,但不需要AFAIK。我可能错了,因为我使用的宏从发布版本中删除所有NSLog。 IIRC,这篇博客文章为我描述了它:http://www.karlkraft.com/index.php/2009/03/23/114/
这是一个奇怪的问题。如果您打算将您的应用程序放在应用程序商店中,其他人很可能会抓住它并且他们不会拥有您的文件。 iPhone本身也无法访问您的桌面。但是,为了论证,你可能会在你的应用程序中创建一个设置,让用户定义这个文件所在的路径。
希望有所帮助。