基础知识
1. 前言
Windows系统的可执行文件的格式为: .exe
Mac 系统的可执行文件的格式可以是任意的
OC语言是在C语言基础之上进行了加强和扩展, OC语言兼容所有的C语言语法,OC特有的东西一般就用自己的。
2. 系统类前缀
Cocoa中系统类前缀NS=NEXTSTEP
3. 关键字
大多数关键字都是以@开头。
4. 运行过程
- 编写OC源文件:.m、.c
- 编译:cc –c xxx.m xxx.c
- 链接:cc xxx.o xxx.o –framework Foundation(用到了Foundation框架需加上-framework Foundation)
- 运行:./a.out
[ 注意:编译和链接可以合并:cc xxx.m xxx.m –framework Foundation ]
5. #import
#import是一个预处理指令,作用跟C语言的#include类似,都是 包含(拷贝)某个文件的内容 到 预处理指令所在的位置。
- #import的用途:
- 跟#include一样,拷贝文件的内容。
- 可以自动防止文件的内容被重复拷贝。
- #import来包含头文件,优点是可以自动防止同一个头文件被包含多次。
#import <...>表示包含系统自带的文件,#import "..."表示包含开发人员自己创建的文件
- #import <Foundation/Foundation.h>
- 包含Foundation框架下的Foundation.h文件
- Foundation.h是主头文件(里面的内容都是Foundation框架下所有头文件的链接)
- [主头文件名与其框架名保持一致]
- 只需要包含主头文件,就可以使用其整个框架的东西!
Xcode中:
按住command键,鼠标点击可以访问框架和方法的详细内容
快捷键command+F可以快速查找
6. 数据类型
- OC中常用数据类型:
- OC中Boolean(布林,true/false)类型和BOOL(布尔,YES/NO)类型都可以用作逻辑判断!
- SEL类型的作用:
方法选择器 @selector(方法名)
(1)配合对象(类)来检查对象(类)中有没有实现某一个方法
respondsToSelector注意点:
- 如果是通过一个对象来调用该方法那么会判断该对象有没有实现-号开头的方法
- 如果是通过类来调用该方法, 那么会判断该类有没有实现+号开头的方法
(2)配合对象(类)来调用某一个SEL方法
(3)配合对象将SEL类型作为方法的形参,即 “@selector(方法名)” 可作为方法的参数(将一个方法作为另一个方法的参数传入)
可以把一个对象的方法传到另一个对象的方法中去执行。
7. OC中的for循环
8. OC中的异常捕捉方法
@try … @catch … @finally
9. 修改项目模板
- 修改项目模板及main函数中的内容:
/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates/Mac/Application/Command Line Tool.xctemplate/TemplateInfo.plist
- 修改OC文件头部的描述信息:
/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates/Source/Cocoa Class.xctemplate
10. Xcode文档安装
(1)在线安装
(2)复制拷贝文档到文档安装目录
Xcode文档安装位置: /Applications/Xcode.app/Contents/Developer/Documentation/DocSets
退出重新打开Xcode。如果还不行,/Users/你的用户名/Library/Developer/Shared/Documentation/DocSets 看是否存在同名的或版本更新的,把它删掉。
注意:如果文件夹中有版本更高的文档不会显示低版本文档。
(3)文档里关键单词说明
Getting Started:新手入门
Guides:指南(程序员经常看的部分)
Reference:参考资料(程序员经常看的部分,里面有每个方法的说明)
Release Notes:发布说明
Sample Code:示例代码
Technical Notes:技术说明
Technical Q&A:常见技术问答
Video:视频(主要是WWDC的视频)
(4)如何阅读文档
快速查询文档:
1》按住option键,单击要查询的关键内容
2》通过Quick Help查询(双击选中要查询的关键内容,再点击”问号“看快速文档)
3》在帮助文档中直接搜索
11. 自定义代码块(快捷方式)
如何导入别人写的快捷方式(代码块)?
将代码块文件直接拷贝到下面目录中,然后重启Xcode即可。
/Users/renbo/Library/Developer/Xcode/UserData/CodeSnippets
12. 代码分组
#pragma mark - 对代码分组
功能:简单来说就是对代码的分组。方便代码查找和导航用的
13. 常见错误
只有方法声的明没有方法的实现,调用方法会出现下面经典错误:发送了一个未识别的消息给实例
reason:'-[类名 方法]:unrecognized selector sent to instance 0x100301fd0'