gpt4 book ai didi

objective-c - Swift 的 CGRect 和 CGSize 扩展在 Objective-C 中不可见

转载 作者:行者123 更新时间:2023-11-28 06:36:29 41 4
gpt4 key购买 nike

我在 Swift 中对一些核心图形结构进行了一些扩展,即 CGSize 和 CGRect,这是 CGSize 的样子....

enum Orientation {
case Portrait
case Landscape
case Square
}


extension CGSize {

/// Based on the size's dimensions, what orientation is it
var orientation: Orientation {

if width > height {
return .Landscape
} else if height > width {
return .Portrait
} else {
return .Square
}
}

}

我需要在 Objective-C 类中使用它们。我已将 Swift header 导入此类,我编写的其他 Swift 扩展也在此类中工作。但是,这两个是不可见的。我猜这是因为这些不是类的扩展。有什么方法可以使它们与我的 Objective-C 代码一起使用?

最佳答案

事实上这是不可能的,因为 OrientationCGSize 不是类。 Orientation 是一个 enumCGSize 是一个 struct

作为documentation说,你不能在 Objective-C 中使用这些 swift 特性:在 Swift 中定义的没有 Int 原始值类型的枚举在 Swift 中定义的结构

关于objective-c - Swift 的 CGRect 和 CGSize 扩展在 Objective-C 中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38969170/

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