零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> Object-C 基础
零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> Object-C 线程
零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> OpenGL ES
零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> GPUImage
零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> AVFoundation
零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> CocoaPods
一.前言
在《Object-C 加载 NSBundle 中图片的三种方法》文章中有介绍,使用 imageWithContentsOfFil 和 imageNamed 都可以直接加载 NSBundle 的素材文件,那么二者到底有什么区别??
/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:IOS - UIImage imageWithContentsOfFil 和 imageNamed 区别
//@Time:2022/03/24 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/
//UIImage 加载 NSBundle 中图片方案一
NSString *file2 = [[NSBundle mainBundle] pathForResource:@"myBundle.bundle/pic" ofType:@"png"];
UIImage *img2 = [UIImage imageWithContentsOfFile:file2];
//UIImage 加载 NSBundle 中图片方案二
UIImage *img3 = [UIImage imageNamed:@"myBundle.bundle/pic"];
二.imageWithContentsOfFile 和 imageNamed 区别
/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:IOS - UIImage imageWithContentsOfFil 和 imageNamed 区别
//@Time:2022/03/27 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/
// 返回的对象会保存在缓存中,只有退出程序才会释放内存;但下一次调用快
[UIImage imageNamed:@"1.png"];
// 返回的对象不会保存在缓存中,一旦对象销毁就会释放内存
NSString *path = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"png"];
// 也可以写成
// NSString *path = [[NSBundle mainBundle] pathForResource:@"1.png" ofType:nil];
[UIImage imageWithContentOfFile:path];
推荐:加载 NSBundle 文件使用 imageNamed;加载沙盒或者其他资源路径文件使用 imageWithContentOfFile;
三.imageWithContentsOfFile 和 imageNamed 踩过的坑
使用 imageNamed 加载沙盒的素材,偶尔不正常,有时候为上一次加载的素材,即路径正常,加载的素材又可能是上一次缓冲区的素材(头疼的bug)
解决办法:使用 imageWithContentOfFile 即可;
推荐:加载 NSBundle 文件使用 imageNamed;加载沙盒或者其他资源路径文件使用 imageWithContentOfFile;
四.猜你喜欢
- iOS NSString 拆分字符串
- iOS NSString 截取字符串
- iOS NSString 和 NSArray 相互转换
- iOS NSString 包含字符串/匹配字符串
- iOS NSURL URLWithString 与 fileURLWithPath 区别
- iOS NSURL 与 NSString相互转换
- iOS NSString 获取中文字符串长度
- iOS NSString 判断字符串是否为空判
- iOS NSString 获取指定下标字符
- iOS NSString 匹配字符串开头
- iOS NSString 匹配字符串结尾
- iOS NSString 判断两个字符串是否相等
- iOS NSString 将字符串中的字母转换为大写
- iOS NSString 将字符串中的字母转换为小写
- iOS NSString 将字符串中的首字母变为大写
- iOS NSString 拼接字符串
- iOS NSString 插入字符串
- iOS NSString 删除字符串
- iOS NSNumber 和 int 相互转换
- iOS NSNumber compare 比较
- iOS NSNumber isEqualToNumber
- iOS NSValue 和 CGPoint 相互转换
- iOS NSValue 和 CGSize 相互转换
- iOS UIImage 与 RGBA 相互转换
- Object-C UIImage 缩放
- Object-C UIImage 裁剪
- Object-C UIImage 旋转
- Object-C UIImage 合并多张图片
- Object-C UIImage 黑白处理
- Object-C UIImage 美白
- Object-C UIImage 磨皮美白
- Object-C UIImage 添加文字
- Object-C isKindOfClass
- Object-C isSubclassOfClass
- IOS – UIImage imageWithContentsOfFil 和 imageNamed 区别
ChatGPT 3.5 国内中文镜像站免费使用啦
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容