У меня есть следующие функции:
- (NSMutableDictionary *) getUserDataDictionary
{
[userDataDicionary removeAllObjects];
userDataDicionary = [[NSMutableDictionary alloc] initWithContentsOfFile:[self getUserDataDictionaryPath]];
return userDataDicionary;
}
- (int) getIndexOfLastVehicle
{
MyAppDelegate *app = (MyAppDelegate*)[[UIApplication sharedApplication] delegate];
NSMutableDictionary *tmpUserData = [app getUserDataDictionary];
int lastHighestIndex = -1;
for(id item in [tmpUserData allKeys]){
NSString *keyInArray = (NSString *)item;
if ([keyInArray rangeOfString:@"VEHICLE-"].location != NSNotFound) {
//f.e. "VEHICLE", "1", "TYPE"...or "VEHICLE", "1", "SPZ"...or "VEHICLE", "2", "TYPE" etc
NSArray * separatedComponents = [keyInArray componentsSeparatedByString:@"-"];
int indexOfVehicle = [(NSString *)[separatedComponents objectAtIndex:1] intValue];
if(indexOfVehicle > lastHighestIndex){
lastHighestIndex = indexOfVehicle;
}
}
}
return lastHighestIndex;
}
Проблема:
после этого кода:
MyAppDelegate *app = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
NSMutableDictionary *tmpUserData = [app getUserDataDictionary];
int lastVehicleIndex = [self getIndexOfLastVehicle];
tmpUserData имеет значение EMPTY.
Но когдаЯ изменил порядок следующим образом:
int lastVehicleIndex = [self getIndexOfLastVehicle];
MyAppDelegate *app = (MyAppDelegate*)[[UIApplication sharedApplication] delegate];
NSMutableDictionary *tmpUserData = [app getUserDataDictionary];
tmpUserData правильно заполнен.
Может кто-нибудь объяснить это поведение?Спасибо