iOS开发那些事-关于性能优化–选择nib还是故事板的讨论

news/2024/7/20 22:35:59 标签: ios, iOS, IOS, iOS开发那些事, nib, 性能优化, 故事版
故事板是苹果在IOS.html" title=iOS>iOS5之后推出的技术,本意是集成多个nib文件于一个故事板文件,管理起来方便,故事板还能反应控制器之间的导航关系,很多导航是需要连连线就可以了,不需写代码,使用起来很方便。但是我告诫读者,从内存占用角度看故事板不是一个好的技术。

为了比较我们使用Xcode中的Master-Detail模板分别创建,基于故事板的应用StoryboardDemo和基于nib的应用NibDemo。然后通过Instruments工具的Allocations模板分析ViewController视图控制器加载的时候,内存占用方面有多少差别。NibDemo工程的Allocations模板跟踪,StoryboardDemo工程的Allocations模板跟踪。

1IOS.html" title=ios>iosbook1.com/wp-content/uploads/2013/01/13.jpg" height="368" width="620" />

画面启动用时00:02.776.562毫秒,内存占用1.10MB。画面启动用时00:02.911.718毫秒,内存占用1.11MB。NibDemo比StoryboardDemo画面启动时间要长,内存要多占用0.01MB,即约等于10KB。

默认情况下工程中有一个故事板文件,它集成了应用中几乎所有的控制器,随着业务复杂度增加,在故事板的IB设计画面会变的杂乱无比,故事板文件会变得非常的庞大。应用程序在加载故事板时候有些迟缓,内存的占用也会增加。

事实上nib仍然是比较好的技术,只不过不能表达画面之间的导航关系,画面导航要手工编写代码。



http://www.niftyadmin.cn/n/1036902.html

相关文章

牛牛做数论 <每日一题分享>

题目: 做题思路: 做这题我们首先要了解什么是欧拉函数 欧拉函数: 就是对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) 。 欧拉函数的通式:φ(n)n*(1-1/p1)(1-1/p2…

iOS开发那些事-iOS常用设计模式–委托模式

对于iOS开发,举例Cocoa框架下的几个设计模式为大家分析。当然,Cocoa框架下关于设计模式的内容远远不止这些,我们选择了常用的几种:单例模式、委托模式、观察者模式、MVC模式。 委托模式 委托模式从GoF 设计装饰(Decorator&#x…

牛牛看云<每日一题>

题目: 做题思路: 注意到𝑛 ≤ 10的6次方而𝑎𝑖 ≤ 1000 可以看到𝑎[𝑖]范围很小 或者说极限数据下会有大量重复的值出现 我们就可以做出如下思路 我们把n序列里面所有的相同的数据 出现的…

小沙的长路<每日一题分享>

题目: 题目思路 : 题目所求分为两种情况 最小值: 我们通过观察图形可知 路径最小值为n-1 最大值: 我们要求最大图就要尽可能的把所有的边 遍历完全 但n个点的完全图 有些情况无法遍历完全 根据欧拉图和半欧拉图 我们可知…

git 拉取其他分支代码

首先 你要把本地的代码全提交到当前分支上去 如果不方便提交的文件 可以先备份 然后恢复到拉取时的样子 因为如果你本地有修改过 和 git仓库上不一样的文件 拉取其他分支代码就会被拦下来 然后输入指令 git pull origin 要拉取的分支例如 git pull origin master这样我们就会…

iOS开发那些事-iOS常用设计模式–委托模式案例实现

书接上回,应用案例 我们以UITextFieldDelegate为例来说明一下委托的使用。UITextFieldDelegate是控件UITextField的 委托,控件的委托主要负责响应控件事件或控制其他对象。除了UITextField,WebView、UITableView等控件也有相应的委托对象。 …

error: Your local changes to the following files would be overwritten by merge

执行一下 git stash封存修改 然后在重新拉取就好了

小沙的数数<每日一题>(二进制的操作方法)

题目: 题目思路: 首先我们知道a数组中所有值的和为m 我们要求a数组中所有值异或的值最大的情况数 我们要先抓住题目的第一个条件 (使a数组中所有值的异或的值为最大) 【对于异或还不清楚的同学可以网上学习一下】 我们要想使异或的值最…