我正在使用Swift(2.0)创建基本模型,然后在Objective-C中控制视图。我对Swift还很陌生,希望我只是忽略了一些简单的东西,但这就是问题所在:
我在Swift中创建了一个可变数组,但当我在程序的Objective-C部分初始化数组时,它变成了NSArray
,更具体地说,它变成了:Swift._SwiftDeferredNSArray
为什么它在初始化时变成不可变的?这是我的Swift代码:
import Foundation
@objc public class Model : NSObject {
var books:[Book]
override init(){
self.books = [Book]()
}
}
这是我的 Obj-c 代码:
Model *bookCollection = [[Model alloc]init];
我无法向我的
bookCollection.books
数组中添加对象(因为它已成为一个NSArray
),当我设置断点并输入po
时,我可以看到它是一个Swift._SwiftDeferredNSArray
。bookCollection.books应该是一个NSMutableArray
。您有什么想法吗?
books
声明之前加上dynamic
关键字。 - Qbyte