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];
それが実際に操作され、変数がアプリによって正しく変更されたときに、どうしてそれを読み取れないのでしょうか?コードをどのように改善すればよいですか?あなたの助けに感謝します。