1

次の行は、Xcode 4 で正常にコンパイルされます。

NSMutableArray *midiViewsToRemove = [NSMutableSet setWithArray:[self.noteViewControllers allKeys]];

NSMutableArray *audioViewsToRemove = [NSMutableSet setWithArray:[self.audioNoteViewControllers allKeys]];

しかし、Xcode 5 では次のエラーが表示されます。

タイプ「NSMutableSet *」の式で「NSMutableArray *」を初期化する互換性のないポインター タイプ

ヘルプ!

4

1 に答える 1

5

このコードは間違っています。以前は、次のようなメソッドsetWithArray:が返されたために機能するだけでしidたが、現在は返さinstancetypeれ、コンパイラが型チェックを行うのに役立ちます。

を に割り当てることはできませNSMutableSet*NSMutableArray*。両方のクラスで共有されているメソッドの一部は、以前は機能していた可能性がありますが、これは危険であり、偶発的にしか機能しませんでした。

NSMutableSet *midiViewsToRemove変数をおよびとして宣言しますNSMutableSet *audioViewsToRemove

于 2013-09-11T07:02:57.327 に答える