CTFrame与Swift中的AnyObject兼容的问题

时间:2014-07-01 17:33:14

标签: swift core-text

我在向全局数组添加CTFrame对象时发现了一个问题(问题在于: Issue when appending a CTFrame to a Swift Array)当我挖掘北斗时,AnyObject不透明类型的CTFrame兼容性似乎存在问题

考虑以下因素:

var path = CGPathCreateMutable()
CGPathAddRect(path, nil, self.view.frame)
let framesetter = CTFramesetterCreateWithAttributedString(NSAttributedString())
let ctFrame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, 0), path, nil);

var ctFramesArray = Array<CTFrame>() // CTFrame type declaration works fine
ctFramesArray.append(ctFrame) // ctFrame is valid can be added to a local array

let object: AnyObject = ctFrame
let frame: CTFrame = object as CTFrame // This line generates the linker error

我创建了一个带有空attrString的简单CTFrame对象(结果与复杂的attrString相同)。该对象是有效的,我可以println()它,它可以添加到本地声明的数组。但是如果我将CTFrame对象转换为AnyObject并尝试从AnyObject对象创建一个新的CTFrame对象,编译器会抱怨并建议添加为CTFrame(强制转换)。

问题在于,假设添加了CoreText框架并且使用了CTFrame类型(例如,在声明时)Xcode报告了一个奇怪的Undefined symbols for architecture i386: "_OBJC_CLASS_$_CTFrame", referenced from:,,项目将不会编译数组,以及渲染CTFrames时。)

我可能会遗漏一些东西吗?

..ë

0 个答案:

没有答案