0

我对 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 的分析工具时,它指向这一行,说“在初始化期间存储到 'entityOrder' 的值永远不会被读取”。

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

当它被实际操作并且变量被应用程序正确修改时,它怎么可能不被读取?我应该如何改进我的代码?谢谢你的帮助。

4

1 回答 1

1

线后立即

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

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

entityOrder = [selectedObjects objectAtIndex:0];

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

于 2011-11-29T17:44:05.950 回答