一. Xcode 环境安装 与 工程创建
相关资源下载:
--iOS相关资料下载页面:https://developer.apple.com/devcenter/ios/index.action;
--Xcode 下载页面:https://developer.apple.com/xcode/downloads/;
进入主界面方式: 打开 Xcode 之后, 可以使用 Xcode 菜单, 但是必须创建一个 Object-C 工程 或者 导入 一个 Object-C 工程才可以进入主界面;
--打开现有工程: 点击右边的历史记录, 就可以打开现有的工程;
--创建工程: 点击第一个 Create a new Xcode Project 即可创建一个新工程;
--导入工程: 点击 Check out an existing project 可以导入一个已经创建的工程;
创建一个命令行程序: 选择 创建工程界面的 OS X --> Command Line Tool 程序, 即创建了一个命令行程序, Cocoa Application 是创建有界面的程序;
--ios 项目: ios项目是为手机和平板开发的应用;
--OS X 项目: OS X 是为 OS 操作系统创建的应用;
创建工程: 注明 工程名, 公司名称, 类型;
--Product Name: 工程名称;
--Organization Name: 组织名称;
--Type: 这里选 Foundation, 这是 Object-C 工程;
打开 Xcode 并选择创建新工程: 弹出菜单中选择 IOS --> Single View Application 工程;
填写项目信息:
--Product Name: 项目名称;
--Organization Name: 公司标识;
--Class Prefix: 为了避免用户定义类与 Object-C 类命名冲突问题, 在每个类之前都加上这个前缀;
--Devices: 选择应用运行的设备, Universal 表示同事兼容 ipad 和 iphone;
程序运行相关:
--从左至右介绍: 运行按钮, 停止按钮, 为工程选择运行平台;
编辑器相关:
--从左至右介绍: 标准编辑器, 辅助编辑器, 版本编辑器;
面板控制相关:
--从左至右介绍: 隐藏左侧面板, 隐藏底部面板, 隐藏右侧面板;
面板介绍: 该面板是 Xcode 工程导航面板, 上方的七个按钮用于切换导航模式;
面板介绍: 用于 Xcode 显示 控制台调试输出信息;
检查器面板: 根据项目的不同, 包含大量审查器;
库面板:
--库面板简介(从左至右): 文件模板库, 代码片段库, 对象库, 媒体库;
该区域是代码编写主要区域:
导航面板简介:
--从左至右: 项目导航, 符号导航, 搜索导航, 问题导航, 测试导航, 调试导航, 断点导航, 日志导航;
项目导航组成:
--源文件: 在 HelloWorld 目录下的 ".h" 和 ".m" 后缀文件是源文件;
--属性文件: 在 HelloWorld 下的 Supporting Files 目录下是属性文件 图片等;
--单元测试项目: HelloWorldTest 是工程的单元测试项目;
--目标应用: Products 目录下的 HelloWorld.app 是目标应用;
符号导航简介: 用符号显示工程中的 类, 项目 和 属性;
--表示方式: C 表示类, M 表示方法, P 表示属性;
--快速定位: 点击对应的方法或者属性, 能快速定位到这个类中;
搜索导航简介: 在搜索框中输入要搜索的字符串, 按回车就可以搜索出包含该字符串的类;
问题导航面板简介: 显示项目中存在的警告或者错误;
测试导航简介: 点击 testExample 后面的执行按钮, 就会运行该单元测试;
调试导航简介: 调试导航面板中显示了各线程的详细信息;
添加断点: 在 OCTViewController.m 中添加一个断点;
开始调试(自动判断): 点击顶部面板中的调试按钮, 如果代码中有断点, 就会自动进入调试状态, 执行到断点时会自动停止, 详细调试信息显示在底部的调试输出面板;
调试面板介绍:
下面从左至右介绍;
--Continue program execution: 继续执行下面的代码;
--Step over: 单步调试, 点击一次该按钮, 执行一行代码, 如果有方法调用, 不会进入方法中;
--Strp in: 步入调试, 点击该按钮, 会进入方法中;
--Step out: 步出调试, 在方法中, 点击该按钮, 会退出方法, 执行方法外的单步调试;
断点导航简介: 列出所有的断点, 方便管理断点;
日志导航简介: 列出项目开发过程中 构建, 生成, 运行过程, 每次该过程都可以通过日志面板查看;
检查面板分类:
--普通源文件: 包含 文件检查器 和 快速帮助器;
--故事版: 界面文件, 除了文件检查器 和 快速帮助器之外, 还有 身份检查器, 属性检查器, 大小检查器, 连接检查器;
文件检查器:
--Identity and Type: File Name(文件名), File Type(文件类型), Full Path(路径);
--Text Settings: Text Encoding(文件编码使用字符集), Indent Using(缩进), Wrap lines(自动换行);
快速帮助器: 将光标停留在系统类的时候, 该面板会显示该类的 参考手册, 使用指南 和 示例代码;
界面设计相关检查器: 用户选中 ".storyboard" 或者 ".xib" 后缀的文件时, 会多出另外四个检查器;
--身份检查器: 管理界面组件类 实现类, 恢复ID 等标识性的属性;
--属性检查器: 管理界面组件 拉伸方式, 背景色 等属性;
--大小检查器: 管理界面组件 宽高 xy轴坐标 等属性;
--连接检查器: 管理界面组件 与程序代码之间的关联性;
库面板简介: 从左至右介绍;
--文件库模板: 管理文件模板, 可以快速创建指定类型文件, 可以直接拖入项目中;
--代码片段库: 管理各种代码片段, 可以直接拖入源代码中;
--对象库: 界面组件, 可以直接拖入 故事板中;
--媒体库: 管理各种 图片, 音频 等多媒体资源;
帮助系统作用: Object-C 开发中需要调用很多系统的类, 需要了解每个类的 用法, 通过 Xcode 帮助系统可以查询这些类的用法;
右面板中的快速面板显示内容: 该类继承的父类, 遵循的协议, 类所在框架, 点击Reference 中的链接, 可以进入类的详细介绍;
类详细介绍页面: 通过 快速帮助面板 中的 Reference 中的链接, 可以进入该页面;
类方法分类界面: 该界面与详细介绍界面是同一个, 下拉即可;
搜索: 通过任意链接进入类详细介绍界面之后, 可以在上方的输入框中输入关键字, 即可搜索相关的 类, 方法, 协议 或者 函数;
提示方式: 代码编辑区域, 按住 option 键, 然后将光标移动到类上, 会变成问号, 点击就会出现下面的提示框;
C语言源文件后缀: ".c";
C++语言源文件后缀: ".cc", ".cpp";
头文件: ".h";
Object-C源程序: ".m";
Object-C++源程序: ".mm";
C/C++/Object-C/Object-C++生成的中间文件: ".o";
C/C++/Object-C/Object-C++生成的可执行文件: ".out";
程序源码:
[objc]view plaincopy
/* 导入 Foundation 框架下的 Foundation.h 文件 */
#include
/* 程序入口函数 */
intmain(intargc,charchar* argv[])
{
/* 自动释放池, 该环境中执行的语句会自动回收所创建的对象 */
@autoreleasepool
{
/* Foundation 中的输出函数, 可输出字符串, 对象等 */
NSLog(@"Hello World");/* @"Hello World", 加上 @ 是为了与 C 中的字符串区分 */
}
return0;
}
导入头文件语句: #import 是导入 a 框架 中的 b.h 头文件;
框架简介: 框架是 一系列类 函数的集合, Cocoa QuickTime 都被封装成了框架, Cocoa 包括了 Foundation 和 Application Kit 等组件;
内存管理: 在早期的 Object-C 需要手动管理内存的分配和回收, Object-C 2.0 引入了ARC(自动引用计数)和自动释放池, 不在进行手动内存管理;
自动释放池: 使用 "@autoreleasepool{}" 包裹的代码位于 Object-C 的自动释放池中, 这些语句会自动回收创建的对象, 不用进行手动的内存管理;
NSLog()函数: 该函数是 Foundation 框架提供的一个函数, 该函数可以输出 字符串 对象等;
--NS 前缀说明: Cocoa 框架中所有的 类 函数 常量 都会加上 NS 前缀;
--@"string" 说明: @符号 用于区分 Object-C 与 C语言字符串, 加上 @ 符号的时 Object-C 字符串;
LLVM Clang 编译器语法: clang -fobjc-arc -framwork 框架名称 源程序 -o 输出结果 ;
---fobjc-arc 参数: 启用 Object-C 的 ARC 自动技术功能;
---o 参数: 如果不带, 默认 输出 a.out ;
编译执行结果:
[plain]view plaincopy
octopus-2:ios octopus$ clang -fobjc-arc -framework Foundation 01-HelloWorld.m
octopus-2:ios octopus$ ls
01-HelloWorld.m a.out
octopus-2:ios octopus$ ./a.out
2014-08-10 00:22:55.670 a.out[3394:507] Hello World
网友评论