状況に応じて、NSArray または NSOrderedSet のいずれかになる可能性のある一連のオブジェクトを列挙しようとしています。どちらも NSFastEnumeration に準拠しているため、これが機能すると予想されます。
id<NSFastEnumeration> enumerableSet =
(test) ?
[NSArray arrayWithObjects:@"one", @"two", @"three", nil] :
[NSOrderedSet orderedSetWithObjects:@"one", @"two", @"three", nil];
NSEnumerator *e = [enumerableSet objectEnumerator];
ただし、次のコンパイラ エラーが発生します。
セレクター 'objectEnumerator' の既知のインスタンス メソッドはありません。
ここに構文エラーがあると思われます。これまで id 構造をあまり扱ったことがありません。セットの 1 つまたは両方を共通のクラスに変換することもできますが、可能であれば、ここで何が起こっているのかをよりよく理解したいと考えています。