Попробуйте сделать это:
NSMutableDictionary* tempDict = [[NSMutableDictionary alloc] init];
self.face1Layers = tempDict;
UIImageView* picView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"pic.png"]];
[self.face1Layers setObject:picView forKey:@"pic"];
[picView release];
[tempDict release];
Не создавайте и не вставляйте свои NSMutableDictionary
и UIImageView
через одну строку кода, потому что у вас есть утечки.
В первомВ случае, если вы делаете следующее, у вас есть счет на сохранение двух.У face1Layers есть политика сохранения.
self.face1Layers = [[NSMutableDictionary alloc] init];
Вы можете избежать такого разделения кода, как я объяснил ранее, или отправить сообщение autorelease
инициализированному объекту.
Во втором случае, когда вы добавляете объект в NSDictionary
или NSArray
(и их подклассы), эти классы сохраняют добавленные объекты.
Надеюсь, это поможет.