作者 : 韩曙亮

转载请注明出处http://blog.csdn.net/shulianghan/article/details/38424965

一. Xcode 环境安装 与 工程创建

1. 下载环境

相关资源下载 :

-- IOS 相关资料下载页面https://developer.apple.com/devcenter/ios/index.action ;

-- Xcode 下载页面https://developer.apple.com/xcode/downloads/ ;

2. 创建 Object-C 程序

进入主界面方式 : 打开 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 工程;

3. 创建 IOS 项目

打开 Xcode 并选择创建新工程 : 弹出菜单中选择 IOS --> Single View Application 工程;

填写项目信息 :

-- Product Name : 项目名称;

-- Organization Name : 公司标识;

-- Class Prefix : 为了避免用户定义类与 Object-C 类命名冲突问题, 在每个类之前都加上这个前缀;

-- Devices : 选择应用运行的设备, Universal 表示同事兼容 ipad 和 iphone;

二. Xcode 界面详解

1. Xcode 界面简介

(1) 顶部区域

程序运行相关

-- 从左至右介绍 : 运行按钮, 停止按钮, 为工程选择运行平台;

编辑器相关

-- 从左至右介绍 : 标准编辑器, 辅助编辑器, 版本编辑器;

面板控制相关

-- 从左至右介绍 : 隐藏左侧面板, 隐藏底部面板, 隐藏右侧面板;

(2) 左面板

面板介绍 : 该面板是 Xcode 工程导航面板, 上方的七个按钮用于切换导航模式;

(3) 底部面板

面板介绍 : 用于 Xcode 显示 控制台调试输出信息;

(4) 右面板

检查器面板 : 根据项目的不同, 包含大量审查器;

库面板 :

-- 库面板简介(从左至右) : 文件模板库, 代码片段库, 对象库, 媒体库;

(5) 详细编辑区

该区域是代码编写主要区域 :

2. 导航面板详解

导航面板简介

-- 从左至右 : 项目导航, 符号导航, 搜索导航, 问题导航, 测试导航, 调试导航, 断点导航, 日志导航;

(1) 项目导航

项目导航组成 :

-- 源文件 : 在 HelloWorld 目录下的 ".h" 和 ".m" 后缀文件是源文件;

-- 属性文件 : 在 HelloWorld 下的 Supporting Files 目录下是属性文件 图片等;

-- 单元测试项目 : HelloWorldTest 是工程的单元测试项目;

-- 目标应用 : Products 目录下的 HelloWorld.app 是目标应用;

(2) 符号导航

符号导航简介 : 用符号显示工程中的 类, 项目 和 属性;

-- 表示方式 : C 表示类, M 表示方法, P 表示属性;

-- 快速定位 : 点击对应的方法或者属性, 能快速定位到这个类中;

(3) 搜索导航

搜索导航简介 : 在搜索框中输入要搜索的字符串, 按回车就可以搜索出包含该字符串的类;

(4) 问题导航面板

问题导航面板简介 : 显示项目中存在的警告或者错误;

(5) 测试导航

测试导航简介 : 点击 testExample 后面的执行按钮, 就会运行该单元测试;

(6) 调试导航

调试导航简介 : 调试导航面板中显示了各线程的详细信息;

添加断点 : 在 OCTViewController.m 中添加一个断点;

开始调试(自动判断) : 点击顶部面板中的调试按钮, 如果代码中有断点, 就会自动进入调试状态, 执行到断点时会自动停止, 详细调试信息显示在底部的调试输出面板;

调试面板介绍 下面从左至右介绍;

-- Continue program execution : 继续执行下面的代码;

-- Step over : 单步调试, 点击一次该按钮, 执行一行代码, 如果有方法调用, 不会进入方法中;

-- Strp in : 步入调试, 点击该按钮, 会进入方法中;

-- Step out : 步出调试, 在方法中, 点击该按钮, 会退出方法, 执行方法外的单步调试;

(7) 断点导航

断点导航简介 : 列出所有的断点, 方便管理断点;

(8) 日志导航

日志导航简介 : 列出项目开发过程中 构建, 生成, 运行过程, 每次该过程都可以通过日志面板查看;

3. 检查器面板

检查面板分类 :

-- 普通源文件 : 包含 文件检查器 和 快速帮助器;

-- 故事版 : 界面文件, 除了文件检查器 和 快速帮助器之外, 还有 身份检查器, 属性检查器, 大小检查器, 连接检查器;

文件检查器 :

-- Identity and Type : File Name(文件名), File Type(文件类型), Full Path(路径);

-- Text Settings : Text Encoding(文件编码使用字符集), Indent Using(缩进), Wrap lines(自动换行);

快速帮助器 : 将光标停留在系统类的时候, 该面板会显示该类的 参考手册, 使用指南 和 示例代码;

界面设计相关检查器 : 用户选中 ".storyboard" 或者 ".xib" 后缀的文件时, 会多出另外四个检查器;

-- 身份检查器 : 管理界面组件类 实现类, 恢复ID 等标识性的属性;

-- 属性检查器 : 管理界面组件 拉伸方式, 背景色 等属性;

-- 大小检查器 : 管理界面组件 宽高 xy轴坐标 等属性;

-- 连接检查器 : 管理界面组件 与程序代码之间的关联性;

4. 库面板

库面板简介 : 从左至右介绍;

-- 文件库模板 : 管理文件模板, 可以快速创建指定类型文件, 可以直接拖入项目中;

-- 代码片段库 : 管理各种代码片段, 可以直接拖入源代码中;

-- 对象库 : 界面组件, 可以直接拖入 故事板中;

-- 媒体库 : 管理各种 图片, 音频 等多媒体资源;

三. Xcode 帮助系统详解

帮助系统作用 : Object-C 开发中需要调用很多系统的类, 需要了解每个类的 用法, 通过 Xcode 帮助系统可以查询这些类的用法;

1. 快速帮助面板

右面板中的快速面板显示内容 : 该类继承的父类, 遵循的协议, 类所在框架, 点击Reference 中的链接, 可以进入类的详细介绍;

类详细介绍页面 : 通过 快速帮助面板 中的 Reference 中的链接, 可以进入该页面;

类方法分类界面 : 该界面与详细介绍界面是同一个, 下拉即可;

2. 直接搜索

搜索 : 通过任意链接进入类详细介绍界面之后, 可以在上方的输入框中输入关键字, 即可搜索相关的 类, 方法, 协议 或者 函数;

3. 代码自动提示

提示方式 : 代码编辑区域, 按住 option 键, 然后将光标移动到类上, 会变成问号, 点击就会出现下面的提示框;

四. Hello World 程序

1. 文件扩展名介绍

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";

2. 程序源码及解析

程序源码 :

/* 导入 Foundation 框架下的 Foundation.h 文件 */
#include <Foundation/Foundation.h>

/* 程序入口函数 */
int main(int argc, char * argv[])
{
	/* 自动释放池, 该环境中执行的语句会自动回收所创建的对象 */
	@autoreleasepool
	{
		/* Foundation 中的输出函数, 可输出字符串, 对象等 */
		NSLog(@"Hello World"); /* @"Hello World", 加上 @ 是为了与 C 中的字符串区分 */
	}
	return 0;
}

(1) 导入框架头文件

导入头文件语句 : #import <a/b.h> 是导入 a 框架 中的 b.h 头文件;

框架简介 : 框架是 一系列类 函数的集合, Cocoa QuickTime 都被封装成了框架, Cocoa 包括了 Foundation 和 Application Kit 等组件;

(2) 自动释放池

内存管理 : 在早期的 Object-C 需要手动管理内存的分配和回收, Object-C 2.0 引入了 ARC(自动引用计数)自动释放池, 不在进行手动内存管理;

自动释放池 : 使用 "@autoreleasepool{}" 包裹的代码位于 Object-C 的自动释放池中, 这些语句会自动回收创建的对象, 不用进行手动的内存管理;

(3) 字符串输出

NSLog()函数 : 该函数是 Foundation 框架提供的一个函数, 该函数可以输出 字符串 对象等;

-- NS 前缀说明 : Cocoa 框架中所有的 类 函数 常量 都会加上 NS 前缀;

-- @"string" 说明 : @符号 用于区分 Object-C 与 C语言字符串, 加上 @ 符号的时 Object-C 字符串;

3. 编译运行代码

LLVM Clang 编译器语法 : clang -fobjc-arc -framwork 框架名称 源程序 -o 输出结果 ;

-- -fobjc-arc 参数 : 启用 Object-C 的 ARC 自动技术功能;

-- -o 参数 : 如果不带, 默认 输出 a.out ;

编译执行结果 :

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

作者 : 韩曙亮

转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/38424965

【IOS 开发】Object-C 入门 Xcode 环境详解的更多相关文章

  1. iOS开发——UI篇OC篇&SpriteKit详解

    SpriteKit详解 SpriteKit,iOS/Mac游戏制作的新纪元 这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览.本文仅作为个人记录使用,也欢迎在许可协议范围内转载或 ...

  2. iOS开发——网络编程Swift篇&Alamofire详解

    Alamofire详解 预览图 Swift Alamofire 简介 Alamofire是 Swift 语言的 HTTP 网络开发工具包,相当于Swift实现AFNetworking版本. 当然,AF ...

  3. iOS开发——控制器OC篇&UINavigationController&UITabBarController详解

    UINavigationController&UITabBarController详解 一:UINavigationController 控制器的属性: UINavigationControl ...

  4. iOS开发——实用篇&KVO与KVC详解

    KVO与KVC详解 由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby.Python的动态特性,例如动态类型.动态加载.动态绑定等.今天我们着重介绍ObjC中的键值编码(KVC ...

  5. iOS开发 - OC - block的详解 - 基础篇

    深入理解oc中的block 苹果在Mac OS X10.6 和iOS 4之后引入了block语法.这一举动对于许多OC使用者的编码风格改变很大.就我本人而言,感觉block用起来还是很爽的,但一直以来 ...

  6. iOS 开发之 -- UDID和UUID的详解

    老实说,搞了几年的ios开发了,对基础的概念,还是不牢固,整天都是为了赶进度而码代码,这里记录一下这两者的区别: UDID的全名为 Unique Device Identifier :设备唯一标识符. ...

  7. iOS开发——高级技术&本地化与国际化详解

    本地化与国际化详解 效果如下:   英语:                                                                    中文: 具体实现如下: ...

  8. iOS开发——UI篇OC篇&UIDynamic详解

    iOS开发拓展篇—UIDynamic(简单介绍) 一.简单介绍 1.什么是UIDynamic UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架 可以认为是一种物理引擎,能模拟 ...

  9. iOS开发——UI篇OC篇&UIStackView详解

    UIStackView详解 一.继承关系.遵守协议.隶属框架及可用平台 UIStackView 类提供了一个高效的接口用于平铺一行或一列的视图组合.Stack视图使你依靠自动布局的能力,创建用户接口使 ...

随机推荐

  1. 重写轮子之 kNN

    # !/usr/bin/python # -*- coding:utf-8 -*- """ Re-implement kNN algorithm as a practic ...

  2. 有趣的冷知识:编程中Foo, Bar 到底什么意思?

    转自:编程中Foo, Bar 到底什么意思? 1 前言 在很多国外计算机书本和一些第三份开源软件的Demo中经常用到两个英文单词Foo,Bar.这到底是什么意思呢?从步入屌丝界的IT生活见到这两个单词 ...

  3. 关于spring定时任务被多次调用的问题

    在项目开发中,难免会用到定时任务,如果你的项目中用了spring这个框架,那么恭喜你,你的定时任务的创建将变得无比简单. 代码中只需要一个 @Scheduled标签,然后配置对应的执行频率即可 pas ...

  4. Gradle 1.12用户指南翻译——第五十章. 依赖管理

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上 ...

  5. 潜谈IT从业人员在传统IT和互联网之间的择业问题(下)-互联网公司

    互联网带来的一片晴天 相对于传统行业来说,互联网行业要显得相对对技术人员尊重些. 在互联网行业中,采用的技术.概念也较传统形行业来说要新,技术人员也容易在此找到自己的一方净土. 因为互联网这个行当讲究 ...

  6. hadoop入门级总结二:Map/Reduce

    在上一篇博客:hadoop入门级总结一:HDFS中,简单的介绍了hadoop分布式文件系统HDFS的整体框架及文件写入读出机制.接下来,简要的总结一下hadoop的另外一大关键技术之一分布式计算框架: ...

  7. iOS 中的block异常

    转自:iOS 知识小集 我们在调用block时,如果这个block为nil,则程序会崩溃,报类似于EXC_BAD_ACCESS(code=1, address=0xc)异常[32位下的结果,如果是64 ...

  8. (Java)微信之个人公众账号开发(一)——进入开发者模式

    本篇文章将教大家如何建立微信个人公众账号,(注意:后台全部是用javaweb相关技术开发),大家知道,现在微信公众账号分服务号和订阅号,现在我要讲的主要是个人微信公众账号的建立以及后台的开发,个人公众 ...

  9. ViewPager实现首次进入软件时左右滑屏的软件展示效果

    效果如图: 图片资源不再提供,大家可以自己下载,能实现效果即可,看代码: 首先是展示界面的layout: view.xml 注意,采用的是帧布局,页面切换时的小圆点是在各张图片之上的 <?xml ...

  10. Eclipse中设置VM参数

    eclipse.ini -Xms256m //设置堆最小值 -Xmx1024m //设置堆最大值 Eclipse 做JVM 的分析时,需要动态设置JVM的参数来进行各种测试, 可以在下图地方进行设置 ...