Как я могу получить доступ к этой переменной в Objective C? - PullRequest
1 голос
/ 07 июля 2011

Вот код, с которым у меня проблемы:

if(DriveInfoDict) {
    NSLog(@"%@", DriveInfoDict);
    //PrevSpeedsDict = [DriveInfoDict objectForKey: @"speed"];
    //NSLog(@"Previous Speed Dict:%@", PrevSpeedsDict);
}



DriveInfoDict = [NSDictionary dictionaryWithObjectsAndKeys:
                 [NSNumber numberWithDouble: CurrentLatitude], @"Lat",
                 [NSNumber numberWithDouble: CurrentLongitude], @"Long",
                 [NSNumber numberWithDouble:speedMPH], @"speed",
                 nil];  

Здесь я хотел бы установить DriveInfoDict, чтобы при следующем запуске функции она имела предыдущее значение. Я лишил операторов, чтобы упростить мою проблему.

Я получаю ошибку: EXC-BAD-ACCESS

Я новичок в Obj-C и не знаю, как сделать этот объект доступным здесь. Некоторый код с объяснением того, идет ли он в файле H или M., будет очень полезен.

1 Ответ

3 голосов
/ 07 июля 2011

Вам необходимо сохранить словарь или использовать alloc/init (который возвращает сохраненный словарь. Так что либо:

DriveInfoDict = [[NSDictionary dictionaryWithObjectsAndKeys:
                 [NSNumber numberWithDouble: CurrentLatitude], @"Lat",
                 [NSNumber numberWithDouble: CurrentLongitude], @"Long",
                 [NSNumber numberWithDouble:speedMPH], @"speed",
                 nil] retain];

, либо:

DriveInfoDict = [[NSDictionary alloc] initWithObjectsAndKeys:
                 [NSNumber numberWithDouble: CurrentLatitude], @"Lat",
                 [NSNumber numberWithDouble: CurrentLongitude], @"Long",
                 [NSNumber numberWithDouble:speedMPH], @"speed",
                 nil];

Если вы замените содержимоеDriveInfoDict (то есть: назначить новый словарь) не забудьте сначала выпустить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...