verwendet Ich habe abgebremst diesen block
s in meinem Objective-C-Code:Kann nicht Objective-C-Block in schnellen
typedef void(^ActionStringDoneBlock)(ActionSheetStringPicker *picker, NSInteger selectedIndex, id selectedValue);
typedef void(^ActionStringCancelBlock)(ActionSheetStringPicker *picker);
ich abbremsen eine Instanz dieses block
s in Objective-C wie unten:
ActionStringDoneBlock done = ^(ActionSheetStringPicker *picker, NSInteger selectedIndex, id selectedValue) {
selectedVisa = (int) selectedIndex;
if ([visaView.textField respondsToSelector:@selector(setText:)]) {
[visaView.textField performSelector:@selector(setText:) withObject:selectedValue];
}
};
und verwenden diese Instanz wie folgt:
[ActionSheetStringPicker showPickerWithTitle:"myTitle"
rows:visaData
initialSelection:initialSelection
doneBlock:done
cancelBlock:cancel
origin:visaView.textField
];
Meine Projektnutzer sowohl schnelle und objecti V-Code. Jetzt möchte ich diesen Code in einem neuen ViewController
in meinem Swift-Code verwenden. Ich benutze folgenden Code:
let done = {(picker: ActionSheetStringPicker?, selectedIndex:Int, selectedValue: Any?) in
//My Codes
}
let cancel = {
(_ picker: ActionSheetStringPicker) -> Void in
}
ActionSheetStringPicker.show(withTitle: "My Title",
rows: messageTitleData,
initialSelection: initialSelection,
doneBlock: done as ActionStringDoneBlock,
cancel: cancel as! ActionStringCancelBlock,
origin: messageTitle.textField
)
aber ich unten Fehlermeldung erhalten in SWIFT-Code:
EXC_BREAKPOINT
ich das aus done as ActionStringDoneBlock
auf die Konsole setzen gedruckt hatte ein I siehe unten Ergebnis:
error: :3:1: error: cannot convert value of type '() ->()' to type 'ActionStringDoneBlock' (aka '(Optional, Int, Optional) ->()') in coercion
Ich habe auch versucht, done
wie folgt zu definieren:
let done = {(picker: Optional<ActionSheetStringPicker>, selectedIndex:Int, selectedValue: Optional<Any>) in
//My Codes
}
aber wieder denselben Fehler bekommen. Hat jemand eine Vorstellung davon, was das Problem im schnellen Code ist?