EXC_BAD_ACCESS с NSDictionary - PullRequest
5 голосов
/ 16 июня 2011

Я пытаюсь добавить объекты, которые находятся в массиве, в NSDictionary на основе их положения внутри NSArray, но приложение вылетает, как только выделяется NSDictionary. Есть идеи почему?

NSString *venue_title = [venues objectAtIndex:[actionSheet tag]];
NSString *venue_address = [venues_full_address objectAtIndex:[actionSheet tag]];
NSString *venue_lat = [venues_lat objectAtIndex:[actionSheet tag]];
NSString *venue_lng = [venues_lng objectAtIndex:[actionSheet tag]];        
NSLog(@"%@, %@, %@, %@", venue_title, venue_address, venue_lat, venue_lng);        
NSDictionary *venue_details_dict = [[NSDictionary alloc] initWithObjects:[NSArray arrayWithObjects:venue_title, venue_address, venue_lat, venue_lng, nil] forKeys:[NSArray arrayWithObjects:@"name", @"address", @"lat", "lng", nil]];

Я вижу все правильные значения, когда я NSLog объекты, но NSDictionary вызывает сбой приложения с ошибкой EXC_BAD_ACCESS. У меня включен NSZombies, но при сбое ничего не показывается, как обычно. Есть идеи о том, что здесь происходит? Заранее спасибо!

Ответы [ 2 ]

12 голосов
/ 16 июня 2011
NSDictionary *venue_details_dict = [[NSDictionary alloc] initWithObjects:
     [NSArray arrayWithObjects:venue_title, venue_address, venue_lat, venue_lng, nil]
   forKeys:
     [NSArray arrayWithObjects:@"name", @"address", @"lat", "lng", nil]];

Вы забыли @ на "lng".Boom.

2 голосов
/ 16 июня 2011

Для большей ясности, что делает такие ошибки легче увидеть, попробуйте:

NSDictionary *venue_details_dict = [NSDictionary dictionaryWithObjectsAndKeys:
    venue_title,   @"name",
    venue_address, @"address",
    venue_lat,     @"lat",
    venue_lng,     @"lng",
    nil];
...