- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 iOS 开发新手。我创建了一个 swift 类,如下所示:
import WatchConnectivity;
import HealthKit;
@objc class Blah : NSObject, WCSessionDelegate {
...
}
我需要 @objc 以便我可以使用来自 objective-C(已经存在)的这个类。问题是当编译器创建桥 [productName]-Swift.h 时,它会提示找不到 WCSessionDelegate。确切错误:
找不到“WCSessionDelegate”的协议(protocol)声明;您是说“NSURLSessionDelegate”吗?
SWIFT_CLASS("_TtC8test8Blah")
@interface Blah: NSObject <WCSessionDelegate>
如果我将其更改为以下内容,而不是实现该委托(delegate),它就会起作用。
@objc class Blah : NSObject {
...
func setSessionDelegate(delegate:WCSessionDelegate) -> Blah {
self.mDelegate = delegate;
return(self)
}
}
我更喜欢前一种方式。如何解决此编译错误?谢谢
最佳答案
看起来 [productName]-Swift.h
文件仅在支持模块时才添加包含:
#if defined(__has_feature) && __has_feature(modules)
@import ObjectiveC;
@import WatchConnectivity;
@import Foundation;
#endif
在我的情况下,也可能在您的情况下,它们是禁用的。如果您不能或不会启用它们,您可以确保每次都自己包含连接 header ,例如
#import <WatchConnectivity/WatchConnectivity.h>
#import "MyApp-Swift.h"
关于ios - 找不到 'WCSessionDelegate' 的协议(protocol)声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32854040/
我正在使用 Xcode 8。我还在使用 Swift 2.3,并将旧版build设置设置为是。我目前没有迁移到 Swift 3。我的应用程序针对 iOS 9.3。我的目标是 watchOS 2.0。 我
我正在尝试调整我的代码,从仅在前台使用 WCSessionDelegate 回调到在后台通过 handleBackgroundTasks: 接受 WKWatchConnectivityRefreshB
我尝试在现有项目中使用 WatchManager.swift。 import Foundation import WatchConnectivity class WatchManager: NSObj
我是 iOS 开发新手。我创建了一个 swift 类,如下所示: import WatchConnectivity; import HealthKit; @objc class Blah : NSOb
自从在 Xcode 8 (Beta 1) 和 Swift 3 上升级后,我在这一行中遇到错误: class CloudViewController: UIViewController, WCSessi
我刚刚使用 Xcode 8 的转换功能将 Swift 2 应用程序转换为 Swift 3。 我的代码有一个标记为WCSessionDelegate的类。 在 Swift 2 中,它编译时没有使用 se
我正在实现新的 WCSessionDelegate 方法以支持多设备配对。 - (void)session:(WCSession *)session activationDidCompleteWith
我在版本 7.0 beta 5 上运行 WatchOS 2.0。我正在运行带有 iWatch 应用程序的 iOS。 我如图所示设置目标。 我让我的 iOS 的 ViewController 和 Wat
更新到 Xcode 8 后,我的带有 WCSessionDelegate 的 Controller 会在 viewController 上带来类型为“不符合协议(protocol) WCSession
我是一名优秀的程序员,十分优秀!