Bootstrap

iOS开发笔记 之 第1章 Objective-C语法学习

iOS开发笔记 之 第1章 基本概念与Helloword

iOS开发笔记 之 第2章 Objective-C基本语法学习

iOS开发笔记 之 第3章 Objective-C数据结构与算法

iOS开发笔记 之 第4章 消息和协议

iOS开发笔记 之 第5章 iPhone的基本控件

iOS开发笔记 之 第6章 网络通信(socket、http、蓝牙)

 

iOS开发笔记 之 第1章 Objective-C语法学习

1.1 基本概念

        XcodeiOS、XCode、Objective-C、Swif、Cocoa是什么?

 

1.1.1 iOS

        XcodeiOS 是由苹果公司开发的手持设备操作系统。苹果公司在 2007 年 1 月 9 日的 MacWorld 大会上公布这个系统,随后于同年的 6 月发布了第一版 iOS 操作系统, 当初此操作系统的名称为“iPhone runs OS X”。最初设计是供 iPhone 使用的,后来陆续套用 到 iPod touch、iPad 以及 Apple TV 等苹果产品上。

        iOS 8于2014年9月17号向用户推送正式版,支持iPhone 4S、iPad 2、iPod touch第五代及以后的设备。

 

1.1.2 Xcode

        Xcode是苹果公司提供的主要进行开发iOS、OS X应用程序的IDE,如VS、eclipse。 Xcode 具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口中操作。

最新版本为Xcode 6.1,新增功能有:允许开发者为iPhone和iPad调整开发应用大小(Resizable iPhone" and "Resizable iPad);开发 4.7英寸、5.5英寸的iPhone 6。同时Xcode 6还支持ios 8全新编程语言——Swif。

 

1.1.3 Objective-C

        Objective-C是一种开发语言,形如C++、Java、C#。类的语法和设计主要是基于Smalltalk,最早的面向对象编程语言之一。 

        Objective-C是ANSI版本C编程语言的超集,支持C的基本语法。在C代码中,你定义头文件和源代码文件,从代码实现细节分离公共声明。

        .h头文件。头文件包含类,类型,函数和常数的声明。

        .m源代码文件。这是典型的源代码文件扩展名,可以包含Objective-C和C代码。

        .mm源代码文件。带有这种扩展名的源代码文件,除了可以包含Objective-C和C代码以外还可以包含C++代码。仅在你的Objective-C代码中确实需要使用C++类或者特性的时候才用这种扩展名。

 

1.1.4 Swif

        Swift是苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。Swift 结合了C和 Objective-C 的优点并且不受C兼容性的限制。Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣。Swift 是基于成熟而且倍受喜爱得 Cocoa 和 Cocoa Touch 框架,他的降临将重新定义软件开发。

 

1.1.5 Cocoa

        Cocoa是OS X和 iOS操作系统的程序的运行环境。类似于微软的.net平台。Cocoa和objective-c的关系,就像C#和.net的关系。

        Cocoa众多框架中最重要最基本的两个框架是:Foundation 和 UIKit。

        Foundation 和界面无关,也可以说和界面无关的类基本是Foundation框架的,和界面相关的是UIKit框架。这两个框架在系统中处于的位置如图:

 

 

 

 

1.2 框架介绍

1.2.1 Foundation

        Foundation 框架为所有应用程序提供基本的系统服务。应用程序以及 UIKit 和其他框架, 都建立在 Foundation 框架的基础结构之上。

        Foundation 框架提供许多基本的对象类和数据类型,使其成为应用程序开发的基础。它 还制定了一些约定(用于取消分配等任务),使代码更加一致,可再用性更好。

        Foundation 框架的功能如下: 

                1.创建和管理集,如数组和字典; 

                2.访问储存在应用程序中的图像和其他资源; 

                3.创建和管理字符串;

                4.发布和观察通知; 

                5.创建日期和时间对象;

                6.自动发现 IP 网络上的设备;

                7.操控 URL 流;

                8.异步执行代码。

        Foundation所以的类,图中灰色的是iOS不支持的,灰色部分是OS X系统的。

 



 

  

 

1.2.2 UIKit 

        UIKit 框架提供的类可用于创建基于触摸的用户界面。用于在屏幕上绘图、处理事件,以及创建通用用户界面元素。可以使用代码创建或使用interface Buidler图形界面方式创建。通过继承UIView类或间接继承UIView类可以自定义用户界面。

        UIKit 框架的功能如下:

                1.构建和管理用户界面;

                2.处理基于触摸和运动的事件;

                3.显示文本和网页内容;

                4.优化应用程序以实现多任务;

                5.创建自定用户界面元素。

 

 

1.2.3 Core Data

        Core Data 框架用于管理应用程序的数据模型。借助 Core Data,可以创建模型对象(称 为被管理的对象),管理那些对象之间的关系,并通过框架更改数据。Core Data 利用内建的 SQLite 技术高效地储存和管理数据。

        Core Data 框架的功能如下: 

                1.存储对象和从储存处取回对象;

                2.支持基本的撤销 / 重做;

                3.自动验证属性值; 对内存中的数据进行过滤、分组和整理;

                4.使用 NSFetchedResultsController 管理表格视图中的结果; 

                5.支持基于文稿的应用程序。

 

1.2.4 Core Graphics 框架

        高质量的图形,是所有iOS 应用程序的一个重要组成部分。使用 Core Graphics 框架可 以创建图形。在 iOS 中创建图形最简易、便捷的方法,是将预渲染的图像与 UIKit 框架的标 准视图和控制配合使用,并让 iOS 完成绘图。

        由于 UIKit 提供用于自定绘图的类,包括路径、颜色、图案、渐变、图像、文本和变 换,因此建议尽可能地使用 UIKit(较高级的框架),而非 Core Graphics(较低级的框架)。

        编写在 iOS 和OS X之间直接共享的绘图代码时,需要使用Core Graphics。Core Graphics 框架也称为Quartz,它在这两个平台上几乎相同。

        Core Graphics框架的功能如下: 

                1.制作基于路径的绘图; 

                2.使用边缘模糊化渲染; 

                3.添加渐变、图像和颜色; 

                4.使用坐标空间变换; 

                5.创建、显示和解析PDF文稿。

 

1.2.5 Core Animation 框架

        使用 Core Animation 框架可以制作高级动画和视觉效果。UIKit提供的动画是建立在 Core Animation技术之上的。如果需要超出UIKit功能的高级动画,可以直接使用Core Animation。

        借助 Core Animation 能够创建不同层次的层对象,并对它们进行操控、旋转、缩放、变 换等。通过使用大家所熟悉的Core Animation视图式抽象,可以创建动态用户界面,而无须 使用低级的图形 API,如 OpenGL ES 等。

        Core Animation 框架的功能如下: 

                1.创建自定动画; 

                2.给图形添加时序功能;

                3.支持关键帧动画; 

                4.指定图形布局约束; 

                5.将多层更改分组为原子更新。

 

1.2.6 OpenGL ES 框架

        OpenGL ES 框架提供 2D 和 3D 绘图工具,支持基础的 2D 和 3D 绘图。Apple 实施的 OpenGL ES 标准与设备硬件紧密协作,为全屏幕游戏类应用程序提供很高的帧速率。

        OpenGL ES 框架的功能如下:

                1.创建2 D和3 D图形 ; 

                2.制作更复杂的图形,如数据可视化、飞行模拟或视频游戏; 

                3.访问底层图形硬件。

 

1.3 Helloword

        这里就不说XCode如何安装了。本人环境:Mac OS X 10.10.1,XCode 6.1。

 

1.3.1 创建项目

        打开Xcode,第一个界面选择左边第二项:Create a new Xcode project



  

 

1.3.2 选择项目模板

        在左侧选择iOS端,Application,Single View Application。



  

 

1.3.3 输入项目名称



  

 

1.3.4 创建完成

        此时就创建完成了。运行后,会启动一个虚拟器,Xcode自动声声称一个xib的视图文件包括了一个label,显示hello word。



  

 

1.3.5 使用代码创建控件

        通过代码,自己创建一个label,并添加到view中。

        在ViewController.m的viewDidLoad方法中添加:

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"ViewController - viewDidLoad");
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 400, 100)];
    label.text=@"Hello World by limingnihao!";
    [self.view addSubview:label];
}



  

 

1.4 命令行项目

        前期,为了练习objective-c语法,使用命令行方式比较好,否则会启动iPhone/iPad虚拟机。

 

1.4.1 选择项目模板

        选择OS X的Application中的Command Line Tool。



  

 

1.4.2 运行结果

        点击运行,会在右下角的窗口中输出通过NSLog方法展示的内容。

 

 

;