-3

viewcontrollerAをシングルトンとして設定しました。viewcontrollerA.hで私は持っています:

@property (nonatomic, assign) NSNumber* showCommentOrCreate;

viewcontrollerB.mで私は持っています:

PhotoViewController* sharedSingleton = [PhotoViewController sharedManager];
sharedSingleton.showCommentOrCreate = [NSNumber numberWithInt:2];

私のviewcontrollerB.mには次のものがあります:

 PhotoViewController* sharedSingleton = [PhotoViewController sharedManager];
NSLog(@"num %ld", (long)sharedSingleton.showCommentOrCreate);

問題は、この方法で設定した値[NSNumber numberWithInt:whole number]に対して、設定した数値ではない数値を常に取得することです。

例:2013-01-24 19:42:24.936 Splash-it [870:907] num 475536752

誰かが理由を知っていますか?

4

2 に答える 2

4

NSNumberオブジェクトに格納されている整数値ではなく、オブジェクトへのポインタを出力しているためです。

于 2013-01-24T18:49:55.787 に答える
1

cocoaオブジェクトで%ldを使用しました。

それを整数/長整数に変換して%ldを使用するか、%@を使用します

これを使って :

NSLog(@"num %@", sharedSingleton.showCommentOrCreate);

または、次のようにすることもできます。

NSLog(@"num %ld", [sharedSingleton.showCommentOrCreate longValue]);

NSLog(@"num %i", [sharedSingleton.showCommentOrCreate integerValue]);
于 2013-01-24T18:50:57.357 に答える