Swift - Obj C Совместимость с замыканиями / блоками - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь импортировать быстрый класс в мой проект Obj C. Все работает, но я пытаюсь преобразовать этот оператор Swift Closure в OBJ C. Я считаю, что это будет блок в obj c, но я просто не могу его получить, любая помощь будет принята с благодарностью!

Swift Объявление: public var otpEnteredString :((String)->())?

Swift Использование в представлении Контроллер:

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

в Obj C я пытаюсь сделать

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

, но я получаю стандарт "Нет видимого интерфейса объявляет селектор .. Любая помощь будет принята с благодарностью!

я могу видеть объявление в xcode, но я не совсем уверен, как перевести это в obj c

enter image description here

Ответы [ 2 ]

3 голосов
/ 14 января 2020

Попробуйте это:

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

Или это:

[ObjectName setOtpEnteredString:^(NSString *pin){
    NSLog(@"The entered pin is %@",pin);
}];
0 голосов
/ 14 января 2020

Изменить на

@objc
public var optEnteredString : ((String) -> ())?
...