Сейчас я читаю учебник. Когда я вижу пример, я немного смущен. Следующие коды показывают способ для ленивой загрузки. Выпускает ли этот массив мотиваций после освобождения экземпляра? или он будет занимать этот блок памяти до тех пор, пока приложение не завершится.Память о ленивой загрузке
+ (NSArray *)motivations
{
static NSArray *motivations = nil;
if (!motivations)
{
motivations = [[NSArray alloc] initWithObjects:@"Greed",@"Revenge",@"Bloodlust",@"Nihilism",@"Insanity",nil];
}
return motivations;
}
Редактировать 1 Спасибо Georg за ошибку.
Обратите внимание, что 'static 'влияет только на хранение указателей' motivations', время жизни массивов полностью не зависит от него. –
Что касается изображения, под iPhone SDK, образ Named будет кэшировать изображение в системе. Нужно ли снова кэшировать изображение в коде? – AechoLiu
есть 2 вещи: 1/вы не можете управлять imageNamed, что он будет кэшировать, а что нет. Вы определенно не хотите кэшировать изображение 3 или 10 МБ, например. 2/Вы не можете загрузить все изображение с помощью imageNamed, например, изображение находится в определенном пути в системе или в изображении, загруженном из Интернета – vodkhang