2013-04-09 5 views
-1

У меня есть метод, как это:формат IOS определяет тип Int, но аргумент имеет тип Int *

-(void)processSomeNumeber:(int *)number 
{ 
    NSLog(@"show me the number %d", number); 
} 

Но я получаю эту ошибку:

"format specifies type int but the argument has type int *"

Кто-нибудь знает, как и почему Я могу это исправить?

+1

изменить его - (ничтожной) processSomeNumeber: (целое) число – msk

ответ

8

Использование:

-(void)processSomeNumeber:(int)number 
{ 
    NSLog(@"show me the number %d", number); 
} 

Или

-(void)processSomeNumeber:(int *)number 
{ 
    NSLog(@"show me the number %d", *number); 
} 
+0

Может кто-то разработать, почему это должно быть так? – kursus

+0

@kursus: Если вы видите основы C-указателей. Переменные указателя (int * number) не поддерживают значение. Он содержит адрес, в котором хранится значение. Чтобы получить доступ к значению, либо де-ссылку '* number', либо вообще не использовать указатель. –

Смежные вопросы