Я реализовывал плагин MacOS Services и наткнулся на взаимодействие Swift / Obj C, которое мне не удалось решить. В Obj C подпись для вызова метода Service выглядит следующим образом:
- (void) translateService:(NSPasteboard *)pboard userData:(NSString *)userData error:(NSString **)error
Я могу создать и работать с эквивалентом Swift, но я не знаю, что с этим делать (NSString * *) ошибка. Я пробовал AutoreleasingUnsafeMutablePointer<NSString?>?
, но я получаю жалобу от компилятора: «Невозможно присвоить значению:« error »- это« let »константа», когда я пытался присвоить NSString параметру ошибки. Вот что у меня есть (что, я уверен, не правильно)
@objc func translateService( _ pboard: NSPasteboard, userData: String, error: AutoreleasingUnsafeMutablePointer <NSString?>?) {
if let types = pboard.types {
if !types.contains(NSPasteboard.PasteboardType.string) {
//TODO: Error
error = NSString("Does not contain String data")
return
}
Как ты имеешь c эту функциональность в Swift? Как вы возвращаете строку ошибки в этом параметре?