当前位置: 首页 > news >正文

iOS的基本的设计模式

不管创建iOS的哪种类型的应用程序,有几个基本的设计模式和技术在写代码前必须你必须知道。在IOS,系统框架为应用程序提供了最重要的基础设施,在大多数情况下,只能通过系统框架来调用底层的硬件。反过来,框架也使用了很多特别的设计模式,开发应用程序前,我们是假设你很熟悉这些设计模式的。要知道系统怎么支持应用程序的,那就得先理解这些设计模式,这非常重要。

你必须知道的最重要的几种设计模式:

Model-View-Controller -----这个设计模式是所以IOS程序的主要架构:

模型-视图-控制器(MVC)模式将您的代码分割为几个独立的部分。模型部分定义应用程序的数据引擎,负责维护数据的完整性;视图部分定义应用程序的用户界面,对显示在用户界面上的数据出处则没有清楚的认识;控制器部分则充当模型和控制器的桥梁,帮助实现数据和显示的更新。



Delegation----这个设计模式有助于一个对象的数据传输到另一个对象:

委托模式可以对复杂对象进行修改而不需要子类化。与子类化不同的是,您可以照常使用复杂对象,而将对其行为进行修改的定制代码放在另一个对象中,这个对象就称为委托对象。复杂对象需要在预先定义好的时点上调用委托对象的方法,使其有机会运行定制代码。

delegation 通过protocol实现。



Target-action----这个设计模式用按钮,等控件把用户的交互变成代码,让程序可以执行:

控件通过目标-动作模式将用户的交互通知给您的应用程序。当用户以预先定义好的方式(比如轻点一个按键)进行交互时,控件就会将消息(动作)发送给您指定的对象(目标)。接收到动作消息后,目标对象就会以恰当的方式进行响应(比如在按动按键时更新应用程序的状态)。


Block objects ----用blocks去实现回调和异步


Sandboxing---所有的iOS应用程序是放在一个沙盒的,这是为了保护其他应用程序和系统的安全。沙盒的结构影响应用程序文件的放置,数据的备份。还影响其他程序的一些功能。

由于安全的原因,iPhone OS将每个应用程序(包括其偏好设置信息和数据)限制在文件系统的特定位置上。这个限制是安全特性的一部分,称为应用程序的“沙箱”。沙箱是一组细粒度的控制,用于限制应用程序对文件、偏好设置、网络资源、和硬件等的访问。在iPhone OS中,应用程序和它的数据驻留在一个安全的地方,其它应用程序都不能进行访问。在应用程序安装之后,系统就通过计算得到一个不透明的标识,然后基于应用程序的根目录和这个标识构建一个指向应用程序家目录的路径。因此,应用程序的家目录具有如下结构:

相关文章:

  • 图文解释XCode常用快捷键的使用
  • 浅谈iPhone OS(iOS)架构
  • xcode制作越狱的ipa包
  • 如何判断是否是retina屏幕和ipad
  • unity制作连连看小教程
  • iOS应用内支付(IAP)的那些坑
  • Unity 游戏引擎的移动基本版从今天起免费提供
  • 我是如何在GitHub上开源一个项目的(截图说明)
  • Unity3D NGUI事务 UIEvents
  • 解决Win7 64位安装 Microsoft .NET Framework 4 失败的情况
  • Win7上Git安装及配置过程
  • 宝石碰碰:HTML5开发Android本地化App游戏案例
  • HTML5游戏框架cnGameJS开发实录
  • 基于HTML5的超级玛丽游戏demo
  • 利用HTML5开发Android
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 收藏网友的 源程序下载网
  • 【刷算法】求1+2+3+...+n
  • android 一些 utils
  • canvas 五子棋游戏
  • CSS居中完全指南——构建CSS居中决策树
  • Django 博客开发教程 16 - 统计文章阅读量
  • GitUp, 你不可错过的秀外慧中的git工具
  • IDEA 插件开发入门教程
  • java概述
  • Linux下的乱码问题
  • QQ浏览器x5内核的兼容性问题
  • Spring核心 Bean的高级装配
  • Spring声明式事务管理之一:五大属性分析
  • 大整数乘法-表格法
  • 电商搜索引擎的架构设计和性能优化
  • 力扣(LeetCode)357
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 正则与JS中的正则
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 【干货分享】dos命令大全
  • ​io --- 处理流的核心工具​
  • # Apache SeaTunnel 究竟是什么?
  • # 数据结构
  • #pragma pack(1)
  • #微信小程序:微信小程序常见的配置传旨
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (26)4.7 字符函数和字符串函数
  • (arch)linux 转换文件编码格式
  • (C#)一个最简单的链表类
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)php投票系统 毕业设计 121500
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (译)2019年前端性能优化清单 — 下篇
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET delegate 委托 、 Event 事件
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .net 生成二级域名