Ответ 1
Это было вызвано более строгим преобразованием в базовый класс в XCode 6.1. Итак, вам нужно повыситься, как показано ниже.
requestOperation.responseSerializer = AFImageResponseSerializer() as AFHTTPResponseSerializer
Я использую AFNetworking 2.3.1
:
let request = NSURLRequest(URL: NSURL(string: "http://xxx.xxx.xxx/xxx")!)
var requestOperation = AFHTTPRequestOperation(request: request)
requestOperation.responseSerializer = AFImageResponseSerializer()
У меня есть ошибка в третьей строке с использованием Swift 1.1 (Xcode 6.1 beta 2 build 6A1030):
'init()' is unavailable: superseded by import of -[NSObject init]
Эта строка должна выглядеть так: Objective-C:
requestOperation.responseSerializer = [AFImageResponseSerializer serializer];
Я думаю, эта проблема связана с автоматическим мостом Swift от Objective-C. Любые идеи для решения этой проблемы?
UPDATE:
Этот способ не работает:
AFImageResponseSerializer.serializer()
И описание ошибки очень приятно:
'serializer()' is unavailable: use object construction 'AFHTTPResponseSerializer()'
ОБНОВЛЕНИЕ 2:
Сейчас я нашел временное решение. Я добавил этот код для соединения заголовка:
@interface AFImageResponseSerializer (CustomInit)
+ (instancetype)sharedSerializer;
@end
и код, добавленный в файл реализации "мостик-заголовок":
@implementation AFImageResponseSerializer (CustomInit)
+ (instancetype)sharedSerializer {
return [AFImageResponseSerializer serializer];
}
@end
И использовал его вот так:
AFImageResponseSerializer.sharedSerializer()
Это было вызвано более строгим преобразованием в базовый класс в XCode 6.1. Итак, вам нужно повыситься, как показано ниже.
requestOperation.responseSerializer = AFImageResponseSerializer() as AFHTTPResponseSerializer
Если это метод класса, вы, вероятно, хотите AFImageResponseSerializer.serializer()