博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初识iOS
阅读量:5806 次
发布时间:2019-06-18

本文共 1842 字,大约阅读时间需要 6 分钟。

编写iOS应用程序有何不同
  • 1.只能同时运行一个应用程序:当程序不处于活动状态也不是在后台运行时,它不会占用任何cpu资源,因此也会断开网络连接。iOS允许程序在后台进行处理,但要做到这点,开发者需要多做些努力
  • 2.只有一个窗口:iOS只允许应用程序操作一个窗口,应用程序与用户的所有交换都在这个窗口中完成,而且这个窗口的大小就是iOS设备屏幕的大小,是固定的。
  • 3.有限的访问权限:iOS严格限制了应用程序的访问权限,ios的文件系统会为每个应用程序分配一块独立的区域,这块区域称为沙盒,每个应用都只能对自己沙盒内的文件进行读写。应用程序还会受到其他方面的限制,比如,不能访问iOS中端口号较小的网络端口。
  • 4.有限的响应时间:由于使用方式特殊,iOS需要能够快速响应各种时间,应用程序也应该如此,在应用程序运行的任何时刻,都可以通过单击home键回到主界面,这时候,应用程序必须快速保存一切内容并退出,如果没有在5秒内保存必要的数据并放弃对系统资源的控制,则无论是否已经保存完成,应用程序都会被终止。有一个api可以在应用程序终止前申请多一些的时间来完成必要的工作,你必须知道如何使用它才行。
  • 5.有限的屏幕大小:因为屏幕尺寸的问题,无法摆放更多的控件,极大的影响了所能提供的应用种类和交互性。
  • 6.有限的系统资源:由于iOS具备的图形特性和多种功能,内存很容易被消耗光,所以Cocoa Touch提供了一种内置机制,可以在内存不足时通知应用程序,出现这种情况时,应用程序必须释放不必要的内存空间,否则就可能被强制退出。
  • 7.不支持垃圾回收机制:Cocoa Touch使用的时Objective-C,但是iOS却并不支持一个Objective-C早就存在的关键特性:垃圾回收。这需要开发者自己去手动管理内存。但是,在最新版本iOS基本解决了这个问题,这要归功于ARC(Automatic Reference Counting,自动引用计数)功能,ARC并不是垃圾回收的代替品,事实上,很多方面,它比垃圾回收更优秀。
  • 8.与众不同的交换方式:iOS设备没有键盘和鼠标,大部分的交换都会由iOS系统完成。例如,如果应用到了文本框,iOS系统就会在用户单击文本框时调出软键盘,不需要开发者为此额外编写代码。
 
分镜(storyboard):每个分镜都是由一组或多组相对应的视图和控制器构成的,视图就是你眼睛能看到并可以在界面构建器中进行编辑的部分,而控制器则是你编写的应用代码,用来处理用户的交互事件,应用的实际操作都是在控制器中进行。
界面构建器包含三个项目:
  • 视图控制器(view controller):视图控制器代表会从某存储文件中加载控制器以及相关联的视图。
  • 第一响应者(First Responder):简单的说就是用户当前正在进行交互的对象,如果用户正在向一个文本框输入数据,那么这个文本框就是第一响应者。第一响应者会随着用户与用户界面的交互而变化,而通过First Responder图标则可以方便与当前作为第一响应者的控件等对象进行通信,不需要编写代码来判断当前到底哪个控件是第一响应者。
  • 离开(exit)
 
MVC模式(Model-View-Controller):
  • 模型:保存应用程序数据的类。
  • 视图:包括窗口、控件以及其他一些用户可以看到并能与之交互的元素。
  • 控制器:把模型和视图绑在一起的代码,包括处理用户输入的应用程序逻辑。
MVC的目标是最大限度地分离这3类代码。创建的任何对象都应该非常清晰明确,让人一看便知这个对象所属的分类(模型、视图、或控制器),尽量不要包含哪些可能被认为属于多个分类的功能。例如:实现按钮的对象不应该包含按钮点击时处理数据的代码,实现银行账户的对象不应该包含绘制表格以显示交易数据的代码。
 
用户界面控件有三种基本模式:活跃、静态(又叫非活跃)、和被动。
  • 活跃控件:点击它们时会发生一些事情,通常是触发一段自己编写的事件代码。
  • 静态控件:类似于图像视图等的控件,尽管能对UIImageView控件进行一些配置使其能够触发操作方法,但用户不能执行任何操作,标签和图像一般都采用这种方式。
  • 被动控件:仅用于存储用户输入的值,以备后续使用。这些控件不会触发任何操作方法,但是用户可以与之交互,并修改它们的值。被动控件一个典型的例子就是文本框。

转载于:https://www.cnblogs.com/hqzxbb/p/4433948.html

你可能感兴趣的文章
AIX 配置vncserver
查看>>
windows下Python 3.x图形图像处理库PIL的安装
查看>>
【IL】IL生成exe的方法
查看>>
network
查看>>
SettingsNotePad++
查看>>
centos7安装cacti-1.0
查看>>
3个概念,入门 Vue 组件开发
查看>>
没有JS的前端:体积更小、速度更快!
查看>>
数据指标/表现度量系统(Performance Measurement System)综述
查看>>
GitHub宣布推出Electron 1.0和Devtron,并将提供无限制的私有代码库
查看>>
Angular2, NativeScript 和 React Native比较[翻译]
查看>>
论模式在领域驱动设计中的重要性
查看>>
国内首例:飞步无人卡车携手中国邮政、德邦投入日常运营
查看>>
微软将停止对 IE 8、9和10的支持
查看>>
微服务架构会和分布式单体架构高度重合吗
查看>>
如何测试ASP.NET Core Web API
查看>>
《The Age of Surge》作者访谈
查看>>
测试人员的GitHub
查看>>
Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
查看>>
有关GitHub仓库分支的几个问题
查看>>