iOS开发58-iOS imageNamed和imageWithContentsOfFile区别
imageNamed:UIImage image = [UIImage imageNamed:@"pic.png”] . 获取到的对象是autoRelease的。这个方法有点特殊,它在生成image对象的同时,会把图像数据 根据它的名字缓存在系统内存中,以提高imageNamed方法获得相同图片的image对象的性能。即使生成的对象被 autoReleasePool释放了,这份缓存也不释放。这对与在应用中有大量相同图片时,非常有用,可以提高性能和内存利用率。
imageWithContentsOfFile :
UIimage image = [UIImage imageWithContentsOfFile:@"path"] 。得到的对象时autoRelease的,当autoReleasePool释放时才释放。不系统缓存。
initWithContentsFile:
UIimage image = [[UIImage alloc] init initWithContentsFile] 。 获取到的对象没用后,要手动release掉。不系统缓存。release后立即释放,一般用在封面等图比较大的地方。
使用imageNamed方式,用同一张图片贴多个imageView应该是经过极大的优化,耗时和内存都极小,而使用imageWithContentsOfFile则有巨大消耗。