Ich habe versucht, einen Abschluss mit den folgenden Objective-C-Blöcken zu definieren:
typedef void(^UPBaseEventAPIArrayCompletion)(NSArray *results, UPURLResponse *response, NSError *error);
+ (void)getFriendsWithCompletion:(UPBaseEventAPIArrayCompletion)completion;
in diesem:
UPUserAPI.getFriendsWithCompletion({(friends: [AnyObject], response: UPURLResponse, error: NSErrorPointer) -> Void in
})
... und bekam folgenden Fehler (siehe Bild):
Wert des Typs "([AnyObject], UPURLResponse, NSErrorPointer) -> Void" kann nicht in den erwarteten Argumenttyp "UPBaseEventAPIArrayCompletion!" Konvertiert werden.
Was ist der richtige Weg, dies zu tun?
Antworten:
2 für die Antwort № 1Versuche dies.
UPUserAPI.getFriendsWithCompletion({(friends: [AnyObject]?, response: UPURLResponse?, error: NSError?) -> Void in
//code
})
Im Ziel-C-Code könnte jeder dieser Parameter gleich Null sein. In Swift müssen diese Parameter daher als Optionals definiert werden.