Я набираю текст из книги для NSDictionary и получаю сообщение об ошибке? - PullRequest
1 голос
/ 12 июля 2011

Я набрал текст из книги и Я получаю эту ошибку: передача аргумента 1 из "initWithObjects: forKeys: count:" из несовместимого типа указателя

NSDictionary *dict = [[NSDictionary alloc] initWithObjects: @"hello", @"there", @"persn" 
            forKeys: @"aa", @"bb", @"cc"
            count: 3 ];

NSLog(@"%@", [dict objectForKey: @"bb"]);   

1 Ответ

4 голосов
/ 12 июля 2011

В Objective-C методы не могут использовать такие var-аргументы, они всегда должны приходить в конце вызова.

Фактически, параметры вашего вызова сообщения на самом деле являются указателями на буферы объектов и ключей.

Попробуйте это:

id objects[] = {@"hello", @"there", @"person"};
id keys[] = {@"aa", @"bb", @"cc"};

NSDictionary *dict1 = [[NSDictionary alloc] initWithObjects:objects forKeys:keys count:3];

NSLog(@"%@", [dict1 objectForKey: @"bb"]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...