コンパイラがオブジェクトのクラスを認識している場合にのみ、ドット構文を使用できます。
id x = array[4];
float age = [x age];
SomeClass *x = array[4];
float age = x.age;
最初のバージョンはかなり危険であることに注意してください。次のような 1 つのプロジェクトでレガシー コードを処理する必要がありました。
NSString *recommendation = [[[[[[[dataArray
objectAtIndex:indexPath.section] mainPerson] friends]
objectAtIndex:indexPath.row] recommendations]
objectAtIndex:0] title];
各オブジェクトにはカスタム クラスがありました。各メッセージは潜在的なクラッシュです。デバッグするのは悪夢です。
私のアドバイス:そこに行かず、コンパイラの強力な型付けサポートを利用してください。
コードを数行追加して、予測不能で検証されていないオブジェクトに対してランダムなメッセージを送信しないようにしてください。