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

一、iOS四层结构

iOS菜鸟成长笔记(3)——斯坦福公开课学习(1)_第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)_第2张图片

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

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

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

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

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

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

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

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

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

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

你可能感兴趣的:(ios,学习笔记,斯坦福)