在iPhone-SDK 3.1下的Xcode 3.2中,如何避免来自CLANG分析器的“Dead store”错误?
问题描述:
我刚升级到Xcode 3.2并使用Build and Analyze功能来检查旧代码是否有错误。在iPhone-SDK 3.1下的Xcode 3.2中,如何避免来自CLANG分析器的“Dead store”错误?
虽然做的事情我认为是无害的,我得到这个错误:
“死店:在它的初始化从未在SpellTest.m读取存储于‘newBook’值”
#define kSpellBookFilename @"TestBookSaver"
-(void)testBookLoadFromDisk;
{
// restore object from disk
SpellBook *newBook = [[[SpellBook alloc] init] autorelease];
newBook = [NSKeyedUnarchiver unarchiveObjectWithFile:kSpellBookFilename];
// show restored object
NSLog(@"archived copy %@", newBook);
}
我是初始化这个对象是错误的还是这是一个误报?
答
这是一家死商店。为什么你甚至在第一行代码中初始化一个新的SpellBook对象,当你把它放在下一行时呢?只需删除第一行(并将类型声明移至第二行)。
DOH !!!!我知道对于本地对象是这样的,但我不知何故将自定义对象首先分配/插入。我是一个Obj-C noob,但回想起来这很愚蠢。谢谢你,我刚刚升上一级。 – willc2 2009-09-14 07:41:55