`
修博龙泉
  • 浏览: 318262 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ios图片引用imageNamed 风险

 
阅读更多
你还在使用myImage = [UIImage imageNamed:@"icon.png"];吗???!!!  


如题,是不是大家为了方便都这样加载图片啊
myImage = [UIImage imageNamed:@"icon.png"];
那么小心了
这种方法在一些图片很少,或者图片很小的程序里是ok的。
但是,在大量加载图片的程序里,请千万不要这样做。
为什么呢 ???????


这种方法在application bundle的顶层文件夹寻找由供应的名字的图象 。 如果找到图片,装载到iPhone系统缓存图象。那意味图片是(理论上)放在内存里作为cache的。

试想你图片多了,是什么后果``````
图片cache极有可能不会响应 memory warnings and release its objects

所以,用图片的时候一定要小心的alloc和release
推荐使用
NSString *path = [[NSBundle mainBundle] pathForResource:@"icon" ofType:@"png"];
myImage = [UIImage imageWithContentsOfFile:path];

不过这种方法要注意了,如果有高清图,也就是@2x的,就不能自动获取到了,自己把握吧,做ui可以用imageNamed,要处理的大图就别这样加载了


// 会缓存图片
UIImageView *wallpaper = [[UIImageView alloc] initWithImage:
wallpaper = [UIImage imageNamed:@"icon.png"]];

// 不会缓存图片
UIImageView *wallpaper = [[UIImageView alloc] initWithImage:
wallpaper = [UIImage imageWithContentsOfFile:@"icon.png"]];
分享到:
评论

相关推荐

    ios 图片滑动浏览代码

    为了加载图片,我们可以使用UIImage的imageNamed:方法加载本地资源,或者使用URLSession和UIImageView的SDWebImage等第三方库加载网络图片。SDWebImage提供了缓存管理和异步加载功能,能有效提高用户体验。 此外,...

    ios-iOS图片浏览工具,简单使用,支持缩放,放大,双击单击操作.zip

    iOS图片浏览工具,简单使用,支持缩放,放大,双击单击操作。最近项目中有用到,就是用了一些大神的三方,现在闲下来了 ,自己动手实现了一下,就当是练习一下吧。希望共同进步吧.我的[github资质]...

    iOS 图片预览,删除

    在iOS开发中,图片预览和...总的来说,iOS图片预览和删除功能的实现涉及图片显示、手势识别、视图控制器导航、用户交互以及数据管理等多个方面。理解这些知识点并熟练运用,能帮助开发者构建更加完善和用户友好的应用。

    iOS图片浏览器, 点击放大全屏显示, 再点击回到原来位置

    下面将详细讲解这些知识点。...总的来说,实现这样一个iOS图片浏览器涉及了UIKit的基础组件使用、手势识别、动画效果、图片处理和用户体验优化等多个方面,需要开发者具备扎实的iOS开发基础和良好的设计思路。

    ios 图片预览

    通过`UIImage`的`imageNamed:`方法,我们可以加载本地资源中的图片;而如果图片在网络服务器上,我们需要借助网络请求库来获取。 提到网络请求库,`AFNetworking`是iOS开发中广泛使用的第三方库,它提供了强大的...

    iOS图片无限轮播

    可以使用UIImage的imageNamed:方法或者通过URL加载网络图片。对于无限轮播,我们需要准备至少三张图片,以便在用户滚动时形成无缝切换的视觉效果。图片的顺序应该是当前图片、下一张图片、上一张图片,这样当用户向...

    ios-给图片添加滤镜.zip

    1. **加载图片**: 使用`UIImage`类的`imageNamed:`方法或者`init?(data:)`方法从本地或者网络获取图片数据。 ```swift let image = UIImage(named: "example.jpg")! ``` 2. **创建CIImage对象**: `CIImage`是Core ...

    ios-简单的图片浏览器.zip

    总结来说,创建一个简单的iOS图片浏览器涉及到以下几个关键点:使用UICollectionView展示图片列表,实现图片的本地加载,提供图片保存到相册的功能,以及优化用户体验。通过理解这些基本概念和技术,开发者可以构建...

    ios图片简单处理

    如果需要动态加载和显示贴纸图片,可以使用UIImage的`imageNamed:`方法。以下是添加贴纸的基本步骤: 1. 创建一个UIView或CALayer代表贴纸。 2. 将贴纸视图添加到UIImageView的父视图上,并设置其frame。 3. 添加...

    iOS项目查找无用的图片资源工具.zip

    接下来,关于iOS图片资源的管理。在iOS应用中,图片资源通常以PNG、JPEG或者SVG等格式存在。为了适配不同的设备和屏幕分辨率,开发者通常需要为每个图片提供多种尺寸,如@1x、@2x和@3x。这些图片会被存储在项目的...

    ios应用源码之简单的图片放大缩小demouitestapp 2018128

    UIImage和UIImageView可以使用`imageWithContentsOfFile:`或`imageNamed:`方法加载图片,前者在加载后立即释放文件,后者则缓存图片以提高加载速度。根据需求,可能还需要使用`SDWebImage`或类似库进行异步加载和...

    ios UIImage category 图片加载

    在iOS开发中,`UIImage`类是处理图片的核心组件,用于加载、显示和操作图片。在实际应用中,我们经常需要高效地加载图片以优化内存使用和应用性能。标题提到的"ios UIImage category 图片加载"是关于如何通过分类...

    ios滚动图片

    在iOS中,我们可以使用`UIImage`类的`imageNamed:`方法,通过图片的名称来加载资源库中的图片。 4. **UIImageView** 每张图片通常会被包装在一个`UIImageView`中,然后作为`UIScrollView`的子视图添加。`...

    ios-图片随着tableview下拉放大.zip

    可以使用缓存策略,如UIImage的`imageWithContentsOfFile:`或`imageNamed:`方法,或者使用SDWebImage、Kingfisher等第三方库来加载和缓存图片,减少内存消耗和加载时间。 6. **动画平滑性**: - 为了确保动画的...

    七牛iOS上传多张图片

    在iOS开发中,有时我们需要实现将用户选择的多张图片上传到云端服务器的功能。七牛云存储提供了一套完善的SDK,使得开发者可以方便地在iOS应用中集成图片上传功能。本教程将详细介绍如何使用七牛iOS SDK来上传多张...

    iOS中通过代码改变图片颜色系

    在iOS开发中,有时我们需要根据应用的主题或者用户的需求动态改变图片的颜色。这可以通过编程方式实现,而无需为每种颜色状态创建不同的图片资源,从而节省了大量的设计和存储资源。本篇将详细介绍如何在iOS中通过...

    iOS开发中使用UIScrollView实现图片轮播和点击加载

    在iOS应用开发中,图片轮播是一种常见的功能,用于展示多张图片或者广告,通常伴随着自动轮播和点击加载更多内容的特性。本文将详细介绍如何使用UIScrollView来实现这一功能,以Objective-C为编程语言。 首先,我们...

    uitableview异步加载图片(iOS)

    对于SDWebImage,这是一个广泛使用的iOS第三方库,专门用于优化图片在网络上的加载、缓存和显示。它的核心功能包括: 1. **异步加载**:在后台线程下载图片,避免阻塞主线程。 2. **内存缓存**:下载的图片会被存储...

    flutter ios-platform-images

    在Flutter中,可以使用IosPlatformImages.load方法加载iOS平台上的图片资源,该方法与UIImage imageNamed:的使用方式类似。 在iOS中,如果使用了ios_platform_images插件,那么可以直接使用OC中的UIImage ...

    iOS 异步下载图片实现瀑布流

    在iOS开发中,实现异步下载图片并构建瀑布流布局是一项常见的需求,特别是在设计社交媒体或者电商应用时。本文将深入探讨如何使用Objective-C(OC)语言来实现这一功能,并结合图片缓存机制来提高用户体验。 首先,...

Global site tag (gtag.js) - Google Analytics