Я пытаюсь вызвать objectForKey: на необязательном ivar, но я получаю ошибку EXC_BAD_ACCESS.
Nsdictionary создается с использованием JSON-фреймворка и затем сохраняется. В первый раз, когда я его использую (сразу после создания, тот же цикл выполнения), он работает отлично, но когда я пытаюсь получить к нему доступ позже, ничего не работает. Я делаю этот код, чтобы попытаться выяснить, что не так:
if (resultsDic == nil) {
NSLog(@"results dic is nil.");
}
if ( [resultsDic respondsToSelector:@selector(objectForKey:)] ) {
NSLog(@"resultsDic should respond to objectForKey:");
}
Словарь никогда не равен нулю, но он всегда вылетает при отклике на ToSelector. есть идеи?
дополнение:
Это и другие места, помимо вышеупомянутых, с которыми взаимодействует словарь:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[connection release];
//get the data in a usable form
NSString *jsonString = [[NSString alloc] initWithData:downloadedData encoding:NSUTF8StringEncoding];
resultsDic = [jsonString JSONValue];
[self processResults];
NSLog(@"Success. Received %d bytes of data",[downloadedData length]);
[downloadedData release];
[jsonString release];
}
- (void)processResults
{
NSArray *resultsArr = [resultsDic objectForKey:@"results"];
CLLocationCoordinate2D coordinate = [self coordinateFromResult:[resultsArr objectAtIndex:0]];
NSLog(@"lat: %f lng: %f", coordinate.latitude, coordinate.longitude);
}
- (void)dealloc {
[resultsDic release];
[super dealloc];
}