iOS开发:IB VS 纯代码

2024-08-30 04:08
文章标签 代码 开发 vs ios ib

本文主要是介绍iOS开发:IB VS 纯代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一般刚开始学习开发iOS的开发者不会考虑是使用IB编写UI好还是使用纯代码编写好,因为刚开始学习的时候可能都觉得只要先学会开发iOS就可以了,再者IB也是苹果官方提供的编程方式,不会有什么问题。但是当开发完全可以掌握使用Ib设计iOS的时候就开始有了疑虑,为什么iOS开发会有Ib开发和纯代码开发两种方法呢,那二者的区别又是什么呢,哪一个更具有优势?

首先,所见即所得的开发模式已经是现代编程的趋势了,如VS和MyEclipse等等,因为这会大大提升程序的开发效率,缩减开发周期。如果使用纯代码如C语言编写,那就要了亲命了,在Windows编写一个窗口需要近百行代码,而在VS下编写一个窗口仅需要几分钟的时间拖动控件即可完成。

但是,凡事都是两面的,开发效率高的一般执行效率都低!想一想Java、C++和C语言之间的关系应该就明白了。

一、IB设计UI

使用IB设计UI,在创建一个ViewController时选中同时创建XIB即可,这样这个XIB文件会自动和这个类关联,当然你也可以分开创建ViewController和XIB,然后自己设置关联。接着我相信大家都知道怎么做了,只需要从Library中选择需要的控件如按钮、文本、输入框等拖放到视图上即可,然后在属性中设置相应的外观。

但是XIB到底是什么呢?XIB其实就是一个XML文件,XML for Interface Builder,当然你可以直接打开这个XML文件对里边的属性进行更改,但对于初学者建议不要这么做。

当程序加载某一个界面的时候,调用init或者initWithNib方法会主动加载对应的XIB文件,然后解析这个XML文件并将解析后的执行代码放到内存中执行。

但是大家如果有文件读写的编程经历的话应该都清楚,文件读写的速度是很慢的,也就是说Ib方式编写代码会拖慢程序执行的效率。似乎像VS和MyEclipse这样的工具使用这种模式开发好像也没发现什么问题,但是iPhone不是PC啊,没有PC那么强悍的硬件。

那么什么情况下使用IB开发呢?

1、软件体积小

2、交互的数据量小

3、团队开发时开发人数少,任务周期短

4、开发者是新手,对iOS开发理解和开发经验还不是很充足,编写代码容易出错或速度太慢

5、对iOS的内存管理了解的不透彻,建议使用IB+ARC实现微笑

6、个人开发

二、纯代码编写UI

这种编写方式一般来说速度慢,执行效率高,对开发者的要求也比较高。但是建议,如果程序数据很大,对执行效率有要求的尽量都使用纯代码编写。

三、IB和纯代码联合编写

1、数据量大的视图使用纯代码编写

2、用户经常查看的视图使用纯代码编写

3、不常使用或隐藏很深,用户不易或根本很少会看的东西使用Ib编写,如软件的帮助和关于、版权协议等。

4、如果你的软件对执行效率没有要求或者软件太小根本不会涉及到效率的问题,那建议使用IB编写

这篇关于iOS开发:IB VS 纯代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1119746

相关文章

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

Agent开发核心技术解析以及现代Agent架构设计

《Agent开发核心技术解析以及现代Agent架构设计》在人工智能领域,Agent并非一个全新的概念,但在大模型时代,它被赋予了全新的生命力,简单来说,Agent是一个能够自主感知环境、理解任务、制定... 目录一、回归本源:到底什么是Agent?二、核心链路拆解:Agent的"大脑"与"四肢"1. 规划模

JAVA项目swing转javafx语法规则以及示例代码

《JAVA项目swing转javafx语法规则以及示例代码》:本文主要介绍JAVA项目swing转javafx语法规则以及示例代码的相关资料,文中详细讲解了主类继承、窗口创建、布局管理、控件替换、... 目录最常用的“一行换一行”速查表(直接全局替换)实际转换示例(JFramejs → JavaFX)迁移建

Go异常处理、泛型和文件操作实例代码

《Go异常处理、泛型和文件操作实例代码》Go语言的异常处理机制与传统的面向对象语言(如Java、C#)所使用的try-catch结构有所不同,它采用了自己独特的设计理念和方法,:本文主要介绍Go异... 目录一:异常处理常见的异常处理向上抛中断程序恢复程序二:泛型泛型函数泛型结构体泛型切片泛型 map三:文

MyBatis中的两种参数传递类型详解(示例代码)

《MyBatis中的两种参数传递类型详解(示例代码)》文章介绍了MyBatis中传递多个参数的两种方式,使用Map和使用@Param注解或封装POJO,Map方式适用于动态、不固定的参数,但可读性和安... 目录✅ android方式一:使用Map<String, Object>✅ 方式二:使用@Param

SpringBoot实现图形验证码的示例代码

《SpringBoot实现图形验证码的示例代码》验证码的实现方式有很多,可以由前端实现,也可以由后端进行实现,也有很多的插件和工具包可以使用,在这里,我们使用Hutool提供的小工具实现,本文介绍Sp... 目录项目创建前端代码实现约定前后端交互接口需求分析接口定义Hutool工具实现服务器端代码引入依赖获

利用Python在万圣节实现比心弹窗告白代码

《利用Python在万圣节实现比心弹窗告白代码》:本文主要介绍关于利用Python在万圣节实现比心弹窗告白代码的相关资料,每个弹窗会显示一条温馨提示,程序通过参数方程绘制爱心形状,并使用多线程技术... 目录前言效果预览要点1. 爱心曲线方程2. 显示温馨弹窗函数(详细拆解)2.1 函数定义和延迟机制2.2

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

Springmvc常用的注解代码示例

《Springmvc常用的注解代码示例》本文介绍了SpringMVC中常用的控制器和请求映射注解,包括@Controller、@RequestMapping等,以及请求参数绑定注解,如@Request... 目录一、控制器与请求映射注解二、请求参数绑定注解三、其他常用注解(扩展)四、注解使用注意事项一、控制