Im, использующий словарь для сохранения некоторых позиций со значением «1»;Ошибка при сбое с использованием NSDictionary - Iphone SDK
/* * * header * * */
NSDictionary *Mypoints;
/* * * * * * * * */
-(void)myfunc: (float)y :(float)x{
NSLog(@"%@",Mypoints);
NSNumber *one = [NSNumber numberWithInt:1];
NSString *key = [[NSString alloc] initWithFormat:@"%f,%f",y,x];
[Mypoints setObject:one forKey:key];
//show the value
NSNumber *tempNum = [Mypoints objectForKey:key];
int i = tempNum.intValue;
NSLog(@"Value: %i",i);
//print all
NSLog(@"%@",Mypoints);
}
Первый раз, когда я называю эту функцию, все в порядке, он создает словарь и распечатать «массив» в последней строке. Но когда я снова вхожу в эту функцию, она вылетает без ошибок.
Я не знаю, что может происходить ...
Я решил аварии, делая это:
Mypoints = [[NSMutableDictionary dictionaryWithObject:one forKey:key]retain];
Я решил, как добавить больше очков:
// в viewDidLoad
Mypoints = [[NSMutableDictionary alloc] init];
// в MyFunc
[Mypoints setObject:one forKey:key];
А потом ... как я могу добавить больше «очков» каждый раз, когда я вхожу в эту функцию ??? – HispaJavi
Вы должны использовать NSMutableDictionary и - (void) setObject: (id) anObject forKey: (id) aKey – martinws
Не могли бы вы объяснить мне, где я должен это делать? Если вы говорите, что словарь автореализован, он будет пустым каждый раз, когда я войду в функцию? – HispaJavi