我对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的帮助。
答案 0 :(得分:1)
紧接在
之后NSEntityDescription *entityOrder = [NSEntityDescription entityForName:@"Order" inManagedObjectContext:managedObjectContext];
然后将其重新分配给selectedObjects
的第一个对象的内容
entityOrder = [selectedObjects objectAtIndex:0];
Xcode分析器让您知道第一个分配是多余的,或者您将[selectedObjects objectAtIndex:0]
的结果分配给代码中的错误变量。