3

私のクラスには、次のようにNSNumberであるメンバー変数があります。

@interface C : NSObject {
    NSNumber* _n;
}

デバッグ中にブレークポイントで停止し、NSNumberの値を変更したい。どうすればいいですか?

XCode変数ウィンドウを試しましたが、機能しません。

たとえば、XCodeデバッグコンソールを試しました

expr _n = @1

しかし、それは奇妙なメッセージエラーを与えます:互換性のないタイプ'NSNumber*'から'NSNumber *'に割り当てる-冗談ではありません!それを試してみてください。

私も試しました

expr _n = [NSNumber numberWithInt:1]

しかし、それは同じことを与えます。

4

2 に答える 2

5

これは私のために働いた:

(lldb) expr -- _n = (NSNumber *)[NSNumber numberWithInt:123]
(NSNumber *) $0 = 0x0000000000007b83 (int)123
(lldb) po _n
(NSNumber *) $1 = 0x0000000000007b83 123

コマンドオプションの--終わりと「生の」入力の始まりをマークするために必要です。

厳密に言えば、これは既存の の値を変更しませんが、新しいオブジェクトを にNSNumber割り当てます。ただし、オブジェクトは不変であるため、値を変更することはできません。NSNumber_nNSNumber

于 2013-01-02T23:09:19.247 に答える
1

この行を使用してみてください:

po _n = @(123)
于 2014-01-13T08:26:30.757 に答える