这个问题已经有了答案:
Issue with CoreText CTFrameGetLineOrigins in Swift
1个答案
我正试图从这里找出CTFrameGetLineOrigins
:CTFrameGetLineOrigins Got Incorrect Origins,并试图将objc转换为swift。
目标C:
CFArrayRef lines = CTFrameGetLines(frame);
size_t numOfLines = CFArrayGetCount(lines);
CGPoint lineOrigins[numOfLines];
CTFrameGetLineOrigins(frame, CFRangeMake(0, 0), lineOrigins);
银行代码:
let lines = CTFrameGetLines(frame)
let numOfLines: size_t = CFArrayGetCount(lines)
let lineOrigins = [CGPoint](repeating: CGPoint.zero, count: numOfLines)
CTFrameGetLineOrigins(frame, CFRangeMake(0, 0), lineOrigins)
但对于ctframegetlineorigins的第3个参数,我得到了一个错误:
无法将类型“[cgpoint]”的值转换为所需的参数类型“unsafemutablepointer”
我该如何克服这个错误?
最佳答案
实际上,我只是将&
添加到参数中,并将常数设为变量。
let lines = CTFrameGetLines(frame)
let numOfLines: size_t = CFArrayGetCount(lines)
var lineOrigins = [CGPoint](repeating: CGPoint.zero, count: numOfLines)
CTFrameGetLineOrigins(frame, CFRangeMake(0, 0), &lineOrigins)