一种比较激进的减少包大小的思路

  1. 最近公司一直在push控制包大小的事情,好多方法都用了,包括删除无用类,删除无用方法,删除无用文件,删除无用图片,一番操作下来,包大小确实降低不少,初期减包还比较顺利,越到最后越难。
  2. 今天介绍一种比较激进的方式,就是把类声明中的@property换成_varible的方式

例如:以我这个test工程为例

image.png
ViewController这个类一共有80个property

image.png

生成出来的最终二进制文件有130k+

image.png

把ViewController的所有property换成_varible变量的方式如下

image.png

最终工程生成的二进制大小为89k,仅一个文件就减少这么多,可见收益还是挺大的。

image.png

  1. 为啥这么做会减少包大小呢?因为以@property方式生成的代码里面,编译器会插入很多自己的代码(setter,getter),比如加个锁,copy一下,retain一下等等,换成_varible的方式就没有那么多自动生成的代码了。
  2. 这种方法比较激进,如果担心有什么问题,可以把一些int,float等简单类型的property换一下,class类型的可以不换。

5.苹果的官方demo也有好多这么用的,比如developer.apple.com/library/arc…

image.png
6. 平时我们自己的工程里面也有好多这么写的,目前线上没发现什么问题,如果有不妥的地方可以留言指出,多谢。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享