Это часть кода, который был переведен:я использовал Swiftify преобразовать некоторые Obj C код для Swift и получил ошибки, которые я не знаю, как бороться с
Objective C:
[SPTRequest userInformationForUserInSession:session callback:^(NSError *error, SPTUser *user) {
if (error != nil) {
UIAlertView *view = [[UIAlertView alloc] initWithTitle:@"Getting User Info Failed"
message:error.userInfo[NSLocalizedDescriptionKey]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[view show];
return;
}
Свифта:
1 SPTRequest.userInformationForUserInSession(session, callback: {(error: NSError, user: SPTUser) -> Void in
2 if error != nil {
3 var view: UIAlertView = UIAlertView(title: "Getting User Info Failed", message: error.userInfo[NSLocalizedDescriptionKey], delegate: nil, cancelButtonTitle: "OK", otherButtonTitles: "")
4 view.show()
5 return
6 }
Ошибки:
1: Cannot convert value of type '(NSError, SPTUser) -> Void' to expected argument type 'SPTRequestCallback!'
2: Value of type 'NSError' can never be nil, comparison isn't allowed
3: Cannot subscript a value of the type '[NSObject: AnyObject]' with an index of type 'String'
Что я больше всего смущен о том, как Objective C будет работать, но Свифт перевод не делает. Мой заголовок заголовка также настроен правильно.
Спасибо!
Сообщения об ошибках выглядят очень четко. Первые два относятся к опциям и легко фиксируются. – matt
@matt Я попробовал поставить их как опционные, и я все равно получаю те же ошибки. – user5812721
@matt Итак, вставьте опцию после 'callback ?: ...' или '... return}?' – user5812721