これから次のObjective-Cコード( source)を変換しようとしています
-(CGRect) dimensionsForAttributedString: (NSAttributedString *) asp {
CGFloat ascent = 0, descent = 0, width = 0;
CTLineRef line = CTLineCreateWithAttributedString( (CFAttributedStringRef) asp);
width = CTLineGetTypographicBounds( line, &ascent, &descent, NULL );
// ...
}
スウィフトに:
func dimensionsForAttributedString(asp: NSAttributedString) -> CGRect {
let ascent: CGFloat = 0
let descent: CGFloat = 0
var width: CGFloat = 0
let line: CTLineRef = CTLineCreateWithAttributedString(asp)
width = CTLineGetTypographicBounds(line, &ascent, &descent, nil)
// ...
}
しかし、次の&ascent
行でエラーが発生しています。
width = CTLineGetTypographicBounds(line, &ascent, &descent, nil)
タイプ「UnsafeMutablePointer」の非 inout 引数で使用される「&」
Xcode は、削除して修正することを提案しています&
。ただし、それを行うと、エラーが発生します
タイプ「CGFloat」の値を予期される引数タイプ「UnsafeMutablePointer」に変換できません
Interacting with C APIs ドキュメントでは構文が使用されて&
いるため、何が問題なのかわかりません。このエラーを修正するにはどうすればよいですか?