Swift-带闭包/块的Obj C互操作性

问题描述 投票:0回答:1

我正在尝试将快速类导入我的Obj C项目。一切正常,但我正在尝试将此Swift Closure语句转换为OBJC。我相信它将是obj c中的一个块,但我似乎无法理解,任何帮助将不胜感激!

快速声明:public var otpEnteredString :((String)->())?

在View Controller中快速使用:

    ObjectName.otpEnteredString = { pin in
    NSLog("The entered pin is %@",pin);
}

正在尝试这样做

    [ObjectName otpEnteredString:^(NSString *pin){
    NSLog(@"The entered pin is %@",pin);
}];

但是我得到了标准“没有可见的接口声明选择器..任何帮助将不胜感激!

我可以在xcode中看到该声明,但是我不确定如何将其转换为obj c

enter image description here

objective-c swift objective-c-blocks
1个回答
0
投票

尝试一下:

ObjectName.otpEnteredString = ^(NSString *pin){
    NSLog(@"The entered pin is %@",pin);
};

或此:

[ObjectName setOtpEnteredString:^(NSString *pin){
    NSLog(@"The entered pin is %@",pin);
}];
© www.soinside.com 2019 - 2024. All rights reserved.