我在新的Swift Project中实现了用Objective C语言编写的静态库。一切都很好,我可以成功地在swift代码块中调用类方法和实例方法。但是当我尝试调用一个返回协议的方法时,我收到一个错误。我没有在swift代码中成功调用下面的方法。
任何人都知道如何在Swift中调用此方法。
我无法调用名为getScreenManager的方法。此外,Xcode没有在Swift中显示此方法的提示。
IScreenManager在下面。
@protocol IScreenManager <NSObject>
@property (weak, nonatomic) id<ScreenManagerDelegate> delegate;
@property (strong, nonatomic) NSDictionary *transitionDictionary;
@property (strong, nonatomic) NSArray *loadingImages;
@property CGFloat loadingAnimationDuration;
@property CGFloat loadingBackgroundAlpha;
- (void)showViewsWithObject:(id)object withMessage:(Response *)message;
- (void)enableScreen;
- (void)disableScreenWillShowLoadingView:(BOOL)willShow;
- (int)getActiveViewId;
- (void)applicationWillEnterForeground;
- (void)applicationDidEnterForeground;
- (void)applicationDidEnterBackground;
答案 0 :(得分:2)
如果您使用的是swift 3或更高版本,那么请尝试使用方法screenManager,因为swift 3中有很多命名约定更改。由于这个Objective-c函数从swift调用也会影响。
Click here阅读更多
答案 1 :(得分:0)
我找到了解决方案。我认为,这是一种Xcode GM错误。因为我现在做了如何调用这个方法,我希望Xcode会像其他方法一样显示提示。当我写下面的代码部分时,Xcode没有触发错误并构建并成功运行。现在我正在下载Xcode 9.感谢大家的快速响应。
override func getScreenManager() -> IScreenManager! {
return MultiLayerScreenManager();
}