我只想知道如何通過引用將數據從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