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 *midiViewsToRemoveNSMutableSet *audioViewsToRemove

于 2013-09-11T07:02:57.327 回答