我正在开发一款应用程序,希望确保我正确地管理内存并释放所有需要释放的。在我的viewDidLoad方法中,我为了国际化而分配了一些变量来确定要应用的背景,并且如果我不释放它们,应用程序可以正常工作。
问题是,如果我释放这些变量,应用程序将会崩溃。下面是viewDidLoad代码:
// Set the background image based on the phone's preferred language
NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];
NSString *backgroundImageName = [[NSString alloc] init];
backgroundImageName = [NSString stringWithFormat:@"background-%@.png",language];
self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:backgroundImageName]];
... do some more initialization stuff ...
// IF THE FOLLOWING ARE RELEASED THE APP WILL CRASH!!!
//[backgroundImageName release];
//[language release];
为什么释放backgroundImageName和language变量会导致应用程序崩溃?