objective-c - 属性不能标记为@objc,因为它的类型不能在 Objective-C 中表示

标签 objective-c swift tuples

我正在为一个用 Swift 编写的项目完成移植,以支持 Objective-C。很多项目都是为了支持 Objective-C 而编写的,而不是特定类的属性。

这是属性:

open var remainingTime: ( hours: Int, minutes: Int, seconds: Int)?

我猜我不能只向其中添加 @objc 因为“小时”、“分钟”、“秒”是对象。如何使此属性对我的 Objective-C 项目可见?

最佳答案

您可以创建一个代表您的元组的类。

代码:

class Time: NSObject {
    let hours: Int
    let minutes: Int
    let seconds: Int

    init(hours: Int, minutes: Int, seconds: Int) {
        self.hours = hours
        self.minutes = minutes
        self.seconds = seconds
    }
}

@objc open var remainingTime: Time?

关于objective-c - 属性不能标记为@objc,因为它的类型不能在 Objective-C 中表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52418329/

相关文章:

python - 比较元组列表 - 无论位置如何都相等

iphone - 解析 json,不带引号的键

ios - 如何在 Objective-C/iOS 中的客户端上创建虚拟 JSON 数据?

swift - 什么时候复制 swift 值类型

ios - 覆盖 canOpenUrl(_ :) AppDelegate

c++ - 将 std::tuple 转换为 std::array C++11

ios 如何隐藏一个 uiview 并在同一位置推送另一个 uiview

Objective-c函数指针

ios - 滚动直到 uicollectionview 的最后一个单元格

python - 为什么 Python 中的元组使用 reversed 但没有 __reversed__?