我正在尝试 NSNumber *百分比来获取整数值百分比,但它一直使超出范围。。 Nslog 日志是这样的:
整数num的值是4
整数num的值是NsNumber 78910432
我的代码是:
在我的标题文件中:
int percentint;
NSNumber *percent;
@property(nonatomic,retain) NSNumber *percent; //tried without using this too
在我的.m文件中:
@synthesize percent; //tried without using this too
percentint=4;
NSLog(@"The value of integer num is %i", percentint);
percent= [NSNumber numberWithInt:percentint];
percent= [[NSNumber alloc] initWithInt:percentint]; //tried without using this too.
[percent autorelease]; //tried without using this too.
NSLog(@"The value of integer num is with NsNumber %i", percent);
答案 0 :(得分:4)
尝试:
percentint=4;
NSLog(@"The value of integer num is %i", percentint);
self.percent= [NSNumber numberWithInt:percentint];
NSLog(@"The value of integer num is in array %@", self.percent);
NSLog(@"The value of integer num is in array %d", [self.percent intValue]);
离开@synthesize百分比;英寸
答案 1 :(得分:2)
用户@Felz是正确的。要获取NSNumber
的值,您必须使用方法调用来检索它:
int percentInt = 95;
NSNumber *percent = [NSNumber numberWithInt:percentInt];
int myint = [percent intValue];
您所做的是打印出percent
NSLog(@"Percent Value: %d",[percent intValue]);
NSLog(@"Percent Address: 0x%X",percent);
请记住,NSNumber *percent
表示百分比是指针而不是值。
答案 2 :(得分:2)
与其他用户暗示,NSNumber
不是整数,因为您试图在最后一个NSLog中调用它。要从NSNumber中获取int值,请使用[percent intValue]
。
另一方面说明:您不需要两次初始化百分比。第一个调用numberWithInt:
就像执行alloc / init / release。
此外,在完成之前永远不要释放对象。