【发布时间】:2014-06-26 15:42:41
【问题描述】:
我有以下代码在 Objective-C 中工作
NSArray *lines = (NSArray *)CTFrameGetLines((__bridge CTFrameRef)columnFrame);
CGPoint origins[[lines count]];
CTFrameGetLineOrigins((__bridge CTFrameRef)columnFrame, CFRangeMake(0, 0), origins);
但是当移植到 Swift 时,编译器会在 CTFrameGetLineOrigins 行中抱怨 Cannot convert the expression´s ´Void´to type ´CMutablePointer<CGPoint>
let nsLinesArray: NSArray = CTFrameGetLines(ctFrame) // Use NSArray to bridge to Array
let ctLinesArray = nsLinesArray as Array
var originsArray: Array<CGPoint> = CGPoint[]()
//var originsArray: NSMutableArray = NSMutableArray.array()
let range: CFRange = CFRangeMake(0, 0)
CTFrameGetLineOrigins(ctFrame, range, originsArray)
我不得不在 CGFrameGetLines 函数中使用 NSArray,然后转换为 Swift 数组,并检查 ctLinesArray,显示 CTLine 对象已正确检索
我尝试将NSMutableArray 用于originsArray,结果相同。
知道缺少什么吗?
【问题讨论】: