程序里经常会加载一些UI图片,当取souce里的图片时无外乎用类方法和实例方法,在这里推荐用实例方法即用alloc并且手动释放的方式,图片小且数量不大时影响不大,若大量图片可以看到对内存的影响,用类方法(不手动释放内存,而是仍到自动释放池里让系统自动释放,实际却是不知道**何时释放)则会占用大量内存。
以下是发现的转换成NSData进行加载方法:
NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:extension];
NSData *image = [NSData dataWithContentsOfFile:filePath];
[UIImage imageWithData:image];
这里的image用alloc创建并手动释放更具效率,以下是常用方法:
UIImageView *bacImageView = [[UIImageViewalloc]initWithFrame:CGRectMake(0,0,320,460)];
NSString *bacString = [[NSBundlemainBundle]pathForResource:@"testImage"ofType:@"png"];
UIImage *bacImage = [[UIImagealloc]initWithContentsOfFile:bacString];
[bacImageViewsetImage:bacImage];
[self.viewaddSubview:bacImageView];
[bacImageViewrelease];
[bacImagerelease];
UIImageView显示选取的图片,加载完成后直接手动释放。
PS:这里做下标记,功能用两种方法都可实现时尽量用实例方法去实现,手动释放内存,少用类方法,使程序减少负荷,少占用内存,加快运行速度。