Nsnumber вне области видимости проблемы - PullRequest
0 голосов
/ 14 января 2011

Я пытаюсь сделать NSNumber * процент , чтобы получить целочисленное значение процентинт , но он продолжает выводить из области видимости. .Журналы Nslog выглядят так:

Значение целого числа равно 4

Значение целого числа равно 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);

Ответы [ 3 ]

4 голосов
/ 14 января 2011

Попробуйте:

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;в.

2 голосов
/ 14 января 2011

Как и другой инсинуированный пользователь, NSNumber не является целым числом, как вы пытаетесь вызвать его в последнем NSLog.чтобы получить значение int из NSNumber, используйте [percent intValue].

Еще одно примечание: вам не нужно инициализировать проценты дважды.Первый вызов numberWithInt: похож на выполнение alloc / init / release.

Кроме того, никогда не отпускайте объект, пока вы не покончили с ним.

2 голосов
/ 14 января 2011

Пользователь @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 означает, что процент является указателем , а не значением.

...