NSEntityDescription工作正常,但Analyzer表示值永远不会读取

时间:2011-11-29 17:26:20

标签: objective-c cocoa core-data nsentitydescription

我对Xcode'分析仪的评论感到困惑。我已经搜索了Stack,但没有找到类似的情况。我有一个CoreData / SQLite应用程序,用户在表中选择一个记录,获取该实体的所有属性。那么,根据条件,会做事。

“ordersController”是数据的NSArrayController。 “订单”是涉及的实体。 “objectAtIndex:0”是表中选定的记录。

以下是代码:

NSArray* selectedObjects = [ordersController selectedObjects];
NSEntityDescription *entityOrder = [NSEntityDescription entityForName:@"Order" inManagedObjectContext:managedObjectContext];
entityOrder = [selectedObjects objectAtIndex:0];
if ([entityOrder valueForKey: bla_bla_bla... { do_something }

应用程序编译正常,没有崩溃,没有警告并正确处理数据。然而,当我启动Xcode的Analyze工具时,它指向这一行,说“在初始化期间存储到'entityOrder'的值永远不会被读取。”

NSEntityDescription *entityOrder = [NSEntityDescription entityForName:@"Order" inManagedObjectContext:managedObjectContext];

当实际操作并且应用程序正确修改变量时,如何才能读取它?我应该如何改进我的代码? Thansk的帮助。

1 个答案:

答案 0 :(得分:1)

紧接在

之后
NSEntityDescription *entityOrder = [NSEntityDescription entityForName:@"Order" inManagedObjectContext:managedObjectContext];

然后将其重新分配给selectedObjects的第一个对象的内容

entityOrder = [selectedObjects objectAtIndex:0];

Xcode分析器让您知道第一个分配是多余的,或者您将[selectedObjects objectAtIndex:0]的结果分配给代码中的错误变量。