资源打包 内存分配 内存管理

一:资源打包

图片资源是放到Images.xcassels里面

1、部署版本在>=iOS8.0的时候,打包的资源包中的图片会被放到Assets.car中,图片有被压缩。

2、部署版本在

3、图片直接被托到项目中,无论部署版本是多少,都会被放到MainBundle里面,图片没有被压缩

二、内存分配

1、使用imageName:加载图片

(1)加载内存当中之后,会一直停留在内存当中,不会随着对象的销毁而销毁。

(2)加载进去图片之后,占用的内存归系统管理,我们无法管理。

(3)相同的图片,图片不会重复加载。

(4)加载到内存中后,占据内存空间较大。

2、使用imageWithContentsofFile:加载图片

(1)加载到内存当中后,占据内存空间较小。

(2)相同的图片会被重复加载内存当中。

(3)对象销毁的时候,加载到内存中图片会随着一起销毁。

结论:

1、如果图片较小,并且使用频繁的图片,使用ImageName来加载图片(按钮图标/主页里面图片)

2、如果图片较大,并且使用较少,使用imageWithContentsoOfFile:来加载(版本新特性/相册)

三、内存管理

什么内存管理?

堆里不再使用的对象,没有被销毁,依然占据着内存

1、静态内存分析

(1)不运行程序,直接根据程序的语法结果,进行分析。

(2)相对不太准确,但是如果发现有地方提示可能有内存泄露,最好根据实际情况看一下。

2、动态内存分析

如果发现内存泄露,基本可以确定某一个地方确实发生的内存泄露,之后很据实际代码情况来解决该问题。

你可能感兴趣的:(资源打包 内存分配 内存管理)