我想知道是否有人有比较过使用NIB(XIB)与完全通过编程布局的iPhone应用程序的加载时间性能经验(即实例化UITextView,将其添加到视图中,实例化UIButton,将其添加到视图中等)。
如果我想让一个简单的应用程序加载速度极快,那么放弃使用NIB,改为通过编程创建视图元素会更好吗?加载和解析NIB所需的时间足以产生明显的差异吗?
我想知道是否有人有比较过使用NIB(XIB)与完全通过编程布局的iPhone应用程序的加载时间性能经验(即实例化UITextView,将其添加到视图中,实例化UIButton,将其添加到视图中等)。
如果我想让一个简单的应用程序加载速度极快,那么放弃使用NIB,改为通过编程创建视图元素会更好吗?加载和解析NIB所需的时间足以产生明显的差异吗?
根据我的经验,这并没有任何明显的区别。
如果你考虑一下 NIB 系统正在进行的操作,它是用户界面对象状态的紧凑二进制表示。通过编程方式创建对象,你只是节省了加载文件和进行一些非常基本的解析所需的时间。与初始化并绘制这些对象(为底层 CALayer 对象分配内存,使用 Quartz2D 绘制它们,然后将结果合成在一起)需要的时间相比,这个时间更长,而且无论是否使用 NIB,它都是完全相同的。如果你加载一堆 PNG 文件来绘制你的 UI,那么这将使创建控件所花费的时间相形见绌。