首页 技术 正文
技术 2022年11月22日
0 收藏 693 点赞 4,585 浏览 1365 个字

一、iOS四层结构

iOS菜鸟成长笔记(3)——斯坦福公开课学习(1)

1、Core OS

是用FreeBSD和Mach所改写的Darwin, 是开源、符合POSIX标准的一个Unix核心。这一层包含或者说是提供了整个iPhone OS的一些基础功能,比如:硬件驱动, 内存管理,程序管理,线程管理(POSIX),文件系统,网络(BSD Socket),以及标准输入输出等等,所有这些功能都会通过C语言的API来提供。另外,值得一题的是,这一层最具有UNIX色彩,如果你需要把 UNIX上所开发的程序移植到iPhone上,多半都会使用到Core OS的API.

2、Core Service

Core Services在Core OS基础上提供了更为丰富的功能, 它包含了Foundation.Framework和Core Foundation.Framework, 之所以叫Foundation ,就是因为它提供了一系列处理字串,排列,组合,日历,时间等等的基本功能。Foundation是属于Objective-C的API,Core Fundation是属于C的API。另外Core servieces还提供了其他的功能,比如:Security, Core Location, SQLite, 和Address Book. 其中Security是用来处理认证,密码管理,按安全性管理的; Core Location是用来处理GPS定位的;SQLLite是轻量级的数据库,而AddressBook则用来处理电话薄资料的。

3、Media

如同其名,Media层提供了图片,音乐,影片等多媒体功能。图像分为2D图像和3D图像, 前者由Quartz2D来支持,后者则是用OpenglES.与音乐对应的模组是Core Audio和OpenAL, Media Player 实现了影片的播放, 而最后还提供了Core Animation来对强大动画的支持。

4、Cocoa Touch

最上面一层是Cocoa Touch,它是Objective-C的API, 其中最核心的部分是UIKit.Framework,应用程序界面上的各种组件,全是由它来提供呈现的,除此之外它还负责处理屏幕上的多点触摸事件,文字的输出,图片,网页的显示,相机或文件的存取,以及加速感应的部分等。

二、iOS中的MVC

iOS菜鸟成长笔记(3)——斯坦福公开课学习(1)

如上图所示,我们将划分为三个部分,白色分割线条表示可以直接访问,黄色分割线条表示不能直接访问。

我们现在要访问某个视图UIView中的属性,就需要使用Outlet进行直接访问,如果视图中有某些事件(比如点击、滑动)要通知控制器(Controller)则需要通过action或者delegate的方式进行访问,而Model的数据变化是通过广播来进行通知Controller的。

三、第一个Objective-C重点及注意点

我们新建一个Card类,包含两个文件(Card.h文件和Card.m文件)

** Card.h是公有声明,Card.m是私有实现

iOS菜鸟成长笔记(3)——斯坦福公开课学习(1)

如上图所示,私有的声明可以在Card.m文件中进行声明。

** 点语法只适用于getter和setter方法(返回值为void的其他方法只有语法警告,但是不建议使用)

** Objective-C和Java不同的是属性不能直接通过点语法访问(点语法实际上调用的是getter和setter方法)

其他语法请参考系列博客《Objective-C基础笔记

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,104
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,581
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,428
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,835
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,918