2015-11-27 4 views
2

Итак, я пытаюсь выполнить учебник из wsdl2code, где они реализуют протоколы obj-c в делете приложения (весь проект находится в объективе-c).Swift не соответствует протоколу Objective-C

Я пытаюсь воссоздать его быстро, но мне постоянно говорят, что я не согласен с протоколом. Я убедился, что типы, используемые в быстрых версиях методов, корректно переходят от объективного к к быстрому.

Вот Objective-C заголовок

#ifndef _Wsdl2CodeProxyDelegate 
#define _Wsdl2CodeProxyDelegate 
@protocol Wsdl2CodeProxyDelegate 
//if service recieve an error this method will be called 
-(void)proxyRecievedError:(NSException*)ex InMethod:(NSString*)method; 
//proxy finished, (id)data is the object of the relevant method service 
-(void)proxydidFinishLoadingData:(id)data InMethod:(NSString*)method; 
@end 
#endif 

Вот мой скор код

class AppDelegate: UIResponder, UIApplicationDelegate, Wsdl2CodeProxyDelegate { 

    // MARK: Proxy protocol methods 

    func proxydidFinishLoadingData(data: AnyObject!, inMethod method: String!) { 
     print("Service \(method) done!") 
    } 

    func proxyRecievedError(ex: NSException!, inMethod method: String!) { 
     print("Exception in service \(method)") 
    } 
+0

В дополнение к тому, что указывает Итан ниже, имена методов слабо названы (... InMethod) в t он заголовок ObjC, но в быстром режиме вы используете «inMethod» –

+0

Это то, что требует xcode. Это верблюд делает это, и если я меняю его, то он говорит мне, что это не похоже на метод –

ответ

1

вы должны реализовать протокол, как это, 'Wsdl2CodeProxyDelegate' забудьте реализовать протокол 'NSObject'

@protocol Wsdl2CodeProxyDelegate <NSObject> 
//if service recieve an error this method will be called 
- (void)proxyRecievedError:(NSException*)ex inMethod:(NSString*)method; 
//proxy finished, (id)data is the object of the relevant method service 
- (void)proxydidFinishLoadingData:(id)data inMethod:(NSString*)method; 
@end 

func proxydidFinishLoadingData(data: AnyObject!, inMethod method: String!) { 

} 

func proxyRecievedError(ex: NSException!, inMethod method: String!) { 

} 
+0

Не работает. Он все еще говорит, что это не соответствует. –

+0

Вы забыли изменить 'String' на' NSString'? также 'inMethod' vs' InMethod' – sbarow

+0

Должен сказать, что вы написали неверный «Wsdl2CodeProxyDelegate», вы в начале делаете неправильное направление. обновить мой ответ, отлично работает в моем проекте. – Ethan

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