私はこの質問をhere(とSOに関する他の質問もあります)と、Objective-Cコレクションと高速列挙に関するAppleのドキュメントを持っています。まさにここに何が起こる異なるタイプのNSArrayでの高速列挙
for (NSString *string in myArray)
NSLog(@"%@\n", string);
:NSArray
はさまざまな種類が移入し、ループが同じように作成された場合には明らかである何をなされていませんか?ループはNSString
以外のものをスキップしますか?たとえば、(引数のために)UIView
が配列内にある場合、ループがその項目に遭遇するとどうなりますか?
速い列挙は、クラスの「あなたの言葉を取ります」。 @awfullyjohnは、未知のクラスのメンバーを持つ配列を扱う最適なソリューションを提供します。暗黙のフィルタリングが起こっておらず、受信者が処理できないメソッドを呼び出すことがあります...クラッシュ –