【发布时间】:2015-12-01 05:31:36
【问题描述】:
我在 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。
有什么想法吗?
【问题讨论】:
-
尝试将
dynamic关键字放在books声明的前面。 -
刚刚尝试了 dynamic var books:[Book] ,不幸的是它没有改变任何东西。
标签: ios objective-c arrays swift swift2