我是iOS开发的新手。我创建了一个如下的快速类:
import WatchConnectivity;
import HealthKit;
@objc class Blah : NSObject, WCSessionDelegate {
...
}
我需要@objc以便我可以使用来自Objective-C(已经存在)的这个类。问题是,当编译器创建bridge [productName] -Swift.h时,它会抱怨它无法找到WCSessionDelegate。确切的错误:
无法找到' WCSessionDelegate&#39 ;;你的意思是' NSURLSessionDelegate'?
SWIFT_CLASS("_TtC8test8Blah")
@interface Blah: NSObject <WCSessionDelegate>
如果我将其更改为以下代码,而不是实现该委托,它可以正常工作。
@objc class Blah : NSObject {
...
func setSessionDelegate(delegate:WCSessionDelegate) -> Blah {
self.mDelegate = delegate;
return(self)
}
}
我更喜欢前一种方式。如何解决此编译错误?感谢
答案 0 :(得分:0)
如果支持mosule,[productName]-Swift.h
文件似乎只会添加include:
#if defined(__has_feature) && __has_feature(modules)
@import ObjectiveC;
@import WatchConnectivity;
@import Foundation;
#endif
在我的情况下,也可能在你的情况下,他们被禁用了。如果您不能或不会启用它们,您可以确保每次都自己包含连接标头,例如
#import <WatchConnectivity/WatchConnectivity.h>
#import "MyApp-Swift.h"