2012-04-20 5 views
1

У меня есть метод, который сейчас только нужно, чтобы сделать NSLog вызов:Основные манипуляции строка в Objective-C

(void)methodName:(NSString*)name { 
    NSLog(@"hey there, %@", name); 
} 

Это говорит «Local declaration of 'name' hides instance variable». Что это значит? Как мне построить строку, которую я хочу?

+0

Показать остальную часть класса пожалуйста. – vcsjones

+0

Является ли этот метод в классе с переменной экземпляра, называемой 'name'? – Perception

+2

@vcsjones действительно не нужно, ошибка ясна. –

ответ

3

Это означает, что у вас уже есть переменная с именем 'name' в вашем классе, которая включает метод methodName. Вы можете изменить его так, чтобы он выглядел так:

- (void)methodName:(NSString*)theName { 
    NSLog(@"hey there, %@", theName); 
} 
3

Просто переименуйте аргумент:

-(void)methodName:(NSString*)nameParam { 
    NSLog(@"hey there, %@", nameParam); 
} 
+0

+1 для правильного ответа и для фиксации подписи метода. – Perception

1

Вы должны использовать name как свойство или переменной. Использование его в качестве имени параметра в методе использует его дважды.

Измените имя параметра метода на что-то еще.

+0

Я думаю, вы имеете в виду параметр метода :) –

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