gpt4 book ai didi

swift - 有没有办法根据正在使用的平台为结构定义协议(protocol)属性?

转载 作者:搜寻专家 更新时间:2023-11-01 06:25:39 24 4
gpt4 key购买 nike

我正在使用 iOS 和 WatchOS。

我有一些正在 iPhone 上创建并发送到 Apple Watch 的结构。该结构的目标成员属于 iOS 应用和 WatchKit 扩展。

我想为这些结构定义一个只能在 WatchKit 扩展中访问的协议(protocol)属性:

var complicationTimelineEntry: CLKComplicationTimelineEntry? { get }

CLKComplicationTimelineEntryClockKit 框架的一部分,它在 iOS 上不可用,所以我无法编译。

有办法吗?还是应该放弃一刀切的方法,将问题分解?

目前,我只是在 WatchOS 端使用另一种协议(protocol)为该结构创建一个扩展。它有效,但比我想要的多了几个步骤。

最佳答案

你可以这样做:

protocol xyz {
#if os(watchOS)
var complicationTimelineEntry: CLKComplicationTimelineEntry? { get }
#endif
.
.
.
}

if 主要检查应用程序在什么操作系统 上运行。

其他可用选项 os(iOS)os(tvOS)os(OSX)

关于swift - 有没有办法根据正在使用的平台为结构定义协议(protocol)属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55637833/

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