I just want to know how may I pass an array from Swift class to Objective C class by reference. I have idea for Swift to Swift by reference using inout
keyword. But as ObjC uses pointers itself as object names. How may I inform Swift to pass the object by reference Instead of Value?
Code Snipshot
Swift:
class CheckReference: NSObject {
class func test() {
let array : NSMutableArray! = nil
ViewController.change(array) //ViewController.change(&array) doesn't work
print(array)//does not changed
}
}
Objective C:
+ (void)changeArray:(NSMutableArray *)array
{
if(!array)
array = [NSMutableArray array];
[array addObject:@(2)];
}
Edit: For swift it works by changing methods as: But still Objective C interaction is not working.
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)
}