Не глядя на вывод ваших инструментов напрямую, я не могу точно сказать, но вы пишете какой-то избыточный код: Попробуйте это:
+ (id) meterFromDict:(NSDictionary*)dict {
Meter* resMeter = [[Meter alloc] initWithType:[[dict objectForKey:@"MeterBase"] intValue]];
//NSLog(@"dict: %@",dict);
resMeter.volume = [dict objectForKey:@"volumeArray"];
resMeter.sounds = [dict objectForKey:@"soundsArray"];
resMeter.repeats = [dict objectForKey:@"repeatsArray"];
//NSLog(@"MeterFromDict called and resmeter.repeats count is : %i",[resMeter.repeats count]);
resMeter.bpm = [[dict objectForKey:@"BPM"] floatValue];
return [resMeter autorelease];
}
Нет смысла обнулять ваши свойства, прежде чем присваивать им новые значения.
Кроме того, нет смысла создавать новые массивы для уже имеющихся массивов. И если вы правильно объявили свои свойства volume
, sounds
и repeats
с copy
вместо retain
.
Попробуйте и посмотрите, работает ли он лучше.