2014-09-17 4 views
14

Я использую AFNetworking 2.3.1:Невозможно вызвать специфический метод класса Objective-C в Swift

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 бета-2 сборки 6A1030):

'init()' is unavailable: superseded by import of -[NSObject init] 

Эта линия должна выглядит, как это на Objective-C:

requestOperation.responseSerializer = [AFImageResponseSerializer serializer]; 

Я думаю, что эта проблема связана т o Быстрое автосоединение с Objective-C. Любые идеи для решения этой проблемы?

enter image description here

UPDATE:

Этот способ не работает:

AFImageResponseSerializer.serializer() 

и описание ошибки очень приятно:

'serializer()' is unavailable: use object construction 'AFHTTPResponseSerializer()' 

UPDATE 2:

Прямо сейчас я нашел временное решение. Я добавил этот код, чтобы мостиковый заголовок:

@interface AFImageResponseSerializer (CustomInit) 
+ (instancetype)sharedSerializer; 
@end 

и код добавляется "мостиковым-заголовок" файл реализации:

@implementation AFImageResponseSerializer (CustomInit) 
+ (instancetype)sharedSerializer { 
    return [AFImageResponseSerializer serializer]; 
} 
@end 

И использовал его, как это:

AFImageResponseSerializer.sharedSerializer() 
+0

Работы для меня! Благодарю. См. Также http://stackoverflow.com/questions/24093693/create-swift-instance-from-objective-c-factory-method –

ответ

16

Это было вызвано усилением взаимодействия n в базовый класс в XCode 6.1. Итак, вам нужно повыситься, как показано ниже.

requestOperation.responseSerializer = AFImageResponseSerializer() as AFHTTPResponseSerializer 
+0

Спасибо! Как вы обнаружили это решение? :) – k06a

+0

Мне нужна дополнительная информация! – BastiBen

0

Если это класс, вы, вероятно, хотите AFImageResponseSerializer.serializer()

+0

Просто добавлено ОБНОВЛЕНИЕ на вопрос – k06a

Смежные вопросы