0

この行:

NSLog(@"%@", NSStringFromCGSize([@"Test" sizeWithFont:((id)[UIFont systemFontOfSize:12.0f])]));

正しい結果を出力します: {24, 15}.

ただし、デバッガーで同じことを行うと (GDB または LLDB は関係ありません)、まったく異なる結果が得られます。

(gdb) p (CGSize) [@"Test" sizeWithFont:((UIFont*)[UIFont systemFontOfSize:12.0f])]
$1 = {
  width = 0, 
  height = 0
}

これは、シミュレーターとデバイスの両方、および 5.1 最終 SDK と 6.0 ベータ 3 SDK の両方で発生します。

何か案が?

4

1 に答える 1

0

OK、さらに深く掘り下げると、UIFont オブジェクトの動的割り当てがデバッガーで何らかの形で失敗することがわかりました。

(gdb) p (CGFloat) [[UIFont systemFontOfSize:12.0f] pointSize]
$3 = 0
(gdb) po [UIFont systemFontOfSize:12.0f]
<UICFFont: 0x8e4b720> font-family: ".Helvetica NeueUI"; font-weight: normal; font-style: normal; font-size: 0px

そのため、何らかの理由で、デバッガー環境で作成されたフォント オブジェクトはフォント サイズが 0 になっています。他の属性は問題ないように見えます。

これをバグとして記録しました: rdar://11934937

于 2012-07-23T13:03:15.490 に答える