我只想知道如何通过引用将数据从Swift类传递到Objective C类。我有使用inout
关键字引用Swift Swift的想法。但是由于ObjC使用指针本身作为对象名称。我如何通知Swift通过引用来传递对象而不是Value?通过引用ObjectiveC方法的Swift传递数组
代码Snipshot
斯威夫特:
class CheckReference: NSObject {
class func test() {
let array : NSMutableArray! = nil
ViewController.change(array) //ViewController.change(&array) doesn't work
print(array)//does not changed
}
}
目标C:
+ (void)changeArray:(NSMutableArray *)array
{
if(!array)
array = [NSMutableArray array];
[array addObject:@(2)];
}
编辑: 为SWIFT它通过更改方法为:不过还是Objective C的相互作用不管用。
class func test() {
var array : NSMutableArray! = nil
CheckReference.passByReference(arr: &array)
print(array ?? "nothing")//prints 2
}
class func passByReference(arr: inout NSMutableArray!)
{
arr = NSMutableArray()
arr.add(2)
}
如果你想发送到obj-c函数 – Tj3n
,只要将它转换为“NSMutableArray”,即使也尝试过。它更新的问题 – Saad
它仍然通过它的价值。 – Saad