7

Objective C で動的にキャストし、インスタンス プロパティにアクセスしたいと思います。ここに擬似コード:

id obj;
if (condition1)
    obj = (Class1*)[_fetchedResults objectAtIndex:indexPath.row];
else
    obj = (Class2*)[_fetchedResults objectAtIndex:indexPath.row];

NSNumber *latitude = obj.latitude;

次に、コンパイラは次のことを教えてくれます: プロパティ '緯度' がタイプ '__strong id' のオブジェクトに見つかりません

Class1 と Class2 はどちらもコア データ エンティティであり、ほぼ同じ種類の属性を持っています。condition1では、 _fetchedResultsは Class1 タイプのオブジェクトを返し、condition2では、 _fetchedResultsは Class2タイプのオブジェクトを返します。

誰かがこの種の問題を解決する方法のヒントを教えてくれませんか?

ありがとう!

4

2 に答える 2