Gewusst wie: übergeben Sie ein Swift-struct als parameter, um eine Objective-C-Methode
Habe ich ein Objective-C-Methode akzeptiert einen parameter vom Typ id
und ich will es pass eine Swift-struct.
ObjcClass.m
Datei:
@implementation ObjcClass
+ (void)addListener:(id)listener {
//Do something with listener
}
DemoStruct.swift
Datei:
struct DemoStruct {
func registerAsListener() {
ObjcClass.addListener(self) //Can't find a way to do this
}
}
Den kompilieren-Fehlermeldung die ich bekomme:
Typ 'DemoStruct' nicht entsprechen, Protokoll 'AnyObject'
Also meine Frage wäre, wie mache ich ein Objective-C-Methode akzeptieren Any
statt AnyObject
und gibt es so etwas?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie es nicht.
Swift-Strukturen sind nicht erreichbar von Objective-C. so steht es in der "Using Swift With Cocoa and Objective-C" book von Apple:
Auszug Aus: Apple Inc. "Using Swift with Cocoa and Objective-C". " iBooks. https://itun.es/gb/1u3-0.l
Das beste, was ich fand, war, wickeln Sie Sie in eine Box-Klasse