NSMutableArray与Xcode 5中的NSMutableSet错误在Xcode 4中编译得很好

use*_*047 1 xcode objective-c ios

以下几行在Xcode 4中编译得很好:

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

NSMutableArray *audioViewsToRemove = [NSMutableSet setWithArray:[self.audioNoteViewControllers allKeys]];
Run Code Online (Sandbox Code Playgroud)

但是Xcode 5给了我以下错误:

不兼容的指针类型使用类型为"NSMutableSet*"的表达式初始化"NSMutableArray*"

救命!

Mik*_*ler 5

这段代码是错误的,并且之前只能使用,因为类似的方法setWithArray:会返回id但现在返回instancetype,这有助于编译器进行类型检查.

你不能指定NSMutableSet*一个NSMutableArray*.这两个类共享的一些方法可能以前有效,但这很危险,只是意外工作.

将变量声明为NSMutableSet *midiViewsToRemoveNSMutableSet *audioViewsToRemove.