给出以下课程
@objc class Foo: NSObject {
var myArray = [Bar]()
}
我想从objc添加数组变量。
Foo* foo = [[Foo alloc] init];
[foo.myArray addObject: bar];
myArray的类型为NSArray而非NSMutableArray,因此没有方法addObject。
答案 0 :(得分:3)
怎么样:
@objc class Foo: NSObject {
var myArray = [Bar]()
func addBar(newBar: Bar) {
myArray.append(newBar)
}
}
然后
Foo* foo = [[Foo alloc] init];
[foo addBar: bar];
根据Law of Demeter,这是更好的编写方式,因为您没有访问foo
答案 1 :(得分:0)
你也可以试试这个:
@objc class Foo: NSObject {
var myArray = NSMutableArray()
}
然后从Objective-C:
Foo *foo = [[Foo alloc] init];
[foo addBar:bar];