我将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:整数],我总是得到一个不是我设置的数字的数字:
e.g。 2013-01-24 19:42:24.936 Splash-it [870:907] num 475536752
有谁知道为什么?
答案 0 :(得分:4)
因为您正在打印指向NSNumber
对象的指针,而不是存储在其中的整数值。
答案 1 :(得分:1)
你使用%ld和cocoa对象。
将其转换为整数/长并使用%ld或使用%@
使用此:
NSLog(@"num %@", sharedSingleton.showCommentOrCreate);
或者你可以这样做:
NSLog(@"num %ld", [sharedSingleton.showCommentOrCreate longValue]);
NSLog(@"num %i", [sharedSingleton.showCommentOrCreate integerValue]);