Ich arbeite an einer Bibliothek geschrieben in Objective-C und ich würde es gerne als "Swifty" wie möglich machen, wenn auf Swift überbrückt.Ist NS_SWIFT_NAME für Factory-Methoden reserviert?
Zum Beispiel kann eine Objective-C-Methode mit dieser Definition
-(void)logProductWithId:(NSString *) productId productName:(NSString*) productName;
wird automatisch auf diese Swift-Funktion übersetzt
func logProductWithId(productId: String, productName: String)
Ist es eine gute Angewohnheit, die NS_SWIFT_NAME
Makro zu verwenden, um loszuwerden, das "mit":
-(void)logProductWithId:(NSString *) productId productName:(NSString*) productName NS_SWIFT_NAME(logProduct(identifier:name:))
was dann in swi übersetzt wird ft
func logProduct(identifier productId: String, name productName: String)
Ich sehe einige SO questions zu erwähnen, dass NS_SWIFT_NAME
nur für Fabrikmethoden zur Verfügung. Die Apple documentation erwähnt nur Factory-Methoden als Beispiel, aber nicht explizit, dass über eine Beschränkung auf NS_SWIFT_NAME
Ja, ich habe die NULL-Attribute. Ich habe gerade versucht, auf XCode 6 zu kompilieren, wo das Makro überhaupt nicht definiert ist, also fügte ich eine Kompatibilität hinzu, wo ich es als '#define NS_SWIFT_NAME (_)' definierte – Jan