2013-06-10 8 views
0

Я пытаюсь научиться Objective-C и столкнулся с предупреждением в этом примере:Неиспользованное переменное предупреждение в Objective C

#import <Foundation/Foundation.h> 

int main (int argc, const char * argv[]) 

{ 
    @autoreleasepool { 

     NSMutableDictionary *booklisting = [NSMutableDictionary dictionary]; 

     int count; // < Am getting 'unused variable' warning here 

     [booklisting setObject:@"Wind in the Willows" forKey:@"100-432112"]; 
     [booklisting setObject:@"Tale of Two Cities" forKey:@"200-532874"]; 
     [booklisting setObject:@"Sense and Sensibility" forKey:@"200-546549"]; 

     [booklisting setObject:@"Shutter Island" forKey:@"104-109834"]; 


     NSLog(@"Number of books in dictionary = %lu", [booklisting count]); 

бы кто-нибудь знают, почему .. Был бы признателен help..thanks

ответ

1

вы используете с помощью count ... [booklisting count] обращается к методу booklisting, который является NSMutableDictionary, который имеет метод под названием count, который возвращает количество записей в словаре.

его совпадение, что у них одноименное имя.

2

Вы не используете никем в своем коде. Поэтому предупреждение появляется.

int count;// count is an variable and 
[booklisting count]//here count is a property of NSArray reference class 

удалите int count; и проверьте его.

+0

+ 1, но '[booklisting число]' в этом случае метод 'NSDictionary';) – HAS

+0

yes Точно для обоих классов aray и dictinary, имеющих счетчик свойств. –

+0

Да, но monkeyboy использует 'NSMutableDictionary', а не' NSArray', поэтому ваш комментарий '// здесь count является свойством ссылочного класса NSArray' в этом случае неправильным;) – HAS

0

поставить эту линию

count =[booklisting count]; 

перед тем NSLog

или удалить эту линию int count;

Счетчик метод геттер для массива.

+0

Спасибо .. Я прокомментировал строку подсчета int, и это сработало. Хотя я немного смущен. Код, который я использовал, точно так же, как указано в электронной книге под названием «Objective-C 2.0 Essentials» Нила Смита. Я получил его с techtopia.com - как он мог ошибаться? Или я сделал что-то не так? – monkeyboy

0

Просто удалите int count;, так как вы не использовали переменную count.

0
int count; // < Am getting 'unused variable' warning here 

объявляется переменная count.But она не не используется .Hence ошибка показана