【发布时间】:2016-05-31 12:10:05
【问题描述】:
Quartz 的图形使用CGFloat。 CGFloat 是 Float 或 Double,具体取决于处理器。
Accelerate 框架具有相同功能的不同变体。 例如 dgetrf_ 用于 Double 和 sgetrf_ 用于 Float。
我必须让这两者一起工作。我可以在任何地方使用 Double 并在每次使用石英时将它们转换为 CGFloat,或者我可以(尝试)确定 CGFloat 的实际类型并使用适当的 Accelerate 函数。
在我的代码库中混合CGFloat's 和Double 类型并不是很吸引人,并且每次将数千或数百万个值转换为CGFloat 对我来说也不是很有效。
此时我会选择第二个选项。 (或者我不应该?)
我的问题是:我怎么知道CGFloat的实际类型?
if ??? //pseudo-code: CGFloat is Double
{
dgetrf_(...)
}
else
{
sgetrf_(...)
}
【问题讨论】:
标签: swift quartz-graphics quartz-core accelerate-framework cgfloat