gpt4 book ai didi

ios - 找不到 'WCSessionDelegate' 的协议(protocol)声明

转载 作者:行者123 更新时间:2023-11-28 08:56:43 25 4
gpt4 key购买 nike

我是 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"

参见 https://stackoverflow.com/a/24064015/67824

关于ios - 找不到 'WCSessionDelegate' 的协议(protocol)声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32854040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com