【发布时间】:2014-08-18 20:40:09
【问题描述】:
我正在尝试将一些代码移植到使用 UIFont 和 CTFont 的 Swift 中,并且(在 Objective-C 中成功)使用简单的桥接转换从一个转换到另一个转换,反之亦然。
例如,考虑以下代码(在 UIFontDescriptor 类别中):
UIFont *font = [UIFont fontWithDescriptor:self size:0.0];
NSArray *features = CFBridgingRelease(CTFontCopyFeatures((__bridge CTFontRef)font));
我还没有弄清楚如何在 Swift 中以一种可以实际编译的方式表达这一点。以下至少不会:
let font = UIFont(descriptor:self, size: 0.0)
let features = CTFontCopyFeatures(font as CTFont)
错误:“UIFont”不能转换为“CTFont”
【问题讨论】:
-
好吧,我不知道这是否可行,但您可以尝试将
UIFont初始化为AnyObject,然后将其转换为CTFont。我认为至少转换应该工作,因为每个类都继承自 AnyObject。