iOS - OC 基本语法
2016-08-17 16:45
225 查看
1、常见文件扩展名
.c C 语言源文件 .cc、.cpp C++ 语言源文件 .m Objective-C 源文件 .mm Objective-C++ 源文件 .h 头文件 .pl Perl 源文件 .o Object(编译后的)文件 .app 可运行的应用程序(相当于 windows 中的 .exe) .dmg OS X 上的光盘文件压缩包(相当于 windows 中的 ISO) .pkg OS X 应用程序安装包(相当于 windows 中的 exe\msi 等) .ipa iOS 应用程序安装包(安装到 iPhone\iPad 等设备上面) .xcodeproj Xcode 的项目文件(双击可直接打开整个项目) .xcworkspace Xcode 工作空间文件 .plist 用于储存用户设置(类似于 windows 下的 .ini) .bundle 可认为是压缩后的文件夹(一种压缩文件)
2、命名规范
按照约定,类名以大写字母开头,尽管没有要求这么做。实例变量、对象以及方法的名称,通常以小写字母开头。为了使程序具有可读性,名称中要用大写字母表示新单词的开头。
一些程序员还使用下划线作为单词的分隔符。
在 OC 中小写字母和大写字母是有区别的。
3、OC 数据类型
char : 字符型 int : 整型 %zi 可打印无符号整形(NSUInteger)数据。%li 可打印有符号整形(NSInteger)数据。 float : 浮点型 double : 双浮点型 BOOL: 布尔型 YES、NO id : 通用的对象类型,可以存储任何类型的对象,从某种意义说,它是一般对象类型。 保存 OC 中任意对象的指针(void *): 泛型指针,保存任意类型的指针变量。 类型转换运算符通常用于将一般 id 类型的对象转换成特定类的对象。 instancetype : instancetype 在类型表示上,跟 id 一样,可以表示任何对象类型。 instancetype 只能用在返回值类型上,不能像 id 一样用在参数类型上。 instancetype 比 id 多一个好处:编译器会检测 instancetype 的真实类型。 enum :枚举。在 OC 中可以将一系列值指派给一个变量。 如:enum flag{false, true}; 要声明一个枚举类型的变量,仍需要用到关键字 enum,之后是枚举的类型名,最后是变量序列。 如:enum flag endOfData = true; 定义枚举数据类型时,可以省略数据类型的名称,定义类型可以将变量声明为特定枚举数据类型中的一个。 如:enum {false, true} endOfData; 枚举标识符可以共享相同的值。 如:enum boolean {no = 0, false = 0, yes = 1, true = 1}; OC 编译器实际上将枚举标识符作为整形常量来处理。 typedef:定义数据类型。 OC 允许编程者为数据类型另外指派一个名称。在这种情况下使用 typedef 语句的主要好处是增加了变量定义的可读性。
4、运算符
1)位运算:位运算符可处理任何类型的整形值,但不能处理浮点值。按位与运算符:经常用于屏蔽预算,该运算符可以轻易的将数据项的特定位设置为 0 。
按位或运算符:通常称为按位 OR,用于将数据项的特定位设为 1 。
按位异或运算符:通常称为 XOR,不同为 1 ,相同为 0 。
一次求反运算符:对运算数的位翻转。
左移位运算符:超出数据项的高位的位将丢失,而从低位移入的值总为 0 。
右移位运算符:从值的低位移出的位将丢失。把无符号的值向右移位总是左侧移入 0 。对有符号的值而言,如果符号位是 0(表示该值为正的),将移入 0;
如果符号位是 1,那么在一些计算机上将移入 1(算数右移),而其他计算机上将移入 0(逻辑右移)。
2)运算函数:
开平方函数:
double sqrt(double);
5、表达式
1)循环结构for 语句 while 语句 do … while 语句 for … in 语句 break continue
2)选择结构
if 语句 switch 语句 … ? … : 条件运算语句,从右往左结合,可多极嵌套使用。 Xcode 支持如下多级运算符的非 ANSI 扩展语句: condition ? : expression 在这个语句中对 condition 求值,若为 YES 则返回值为 condition 。 若 condition 值为 NO ,则返回值为 expression 。
6、程序编译
1)预处理预处理程序实际上是在分析 OC 程序之前先处理这些语句。预处理程序语句使用井号(#)标记,这个符号必须是一行中的第一个非空格字符。
#define :给符号名称指定程序常量 #import :文件包含 #ifdef、#endif、#else、#ifndef、#if、#elif :条件编译 #undef :消除特定名称的定义
7、堆和栈的区别
堆需要用户手动释放内存,而栈则是编译器自动释放内存相关文章推荐
- 黑马程序员-IOS学习笔记-OC基础OC简介及基本语法
- IOS开发-OC基本语法(1)
- 黑马程序员-IOS-OC基础-OC简介及基本语法
- 黑马程序员--iOS-OC基本语法
- IOS开发语言OC的基本语法以及结构
- 黑马程序员_iOS开发之OC基本语法
- iOS开发OC基本语法、类和对象、三大特性
- 黑马程序员-IOS-OC基础-OC简介及基本语法
- 黑马程序员-iOS学习日记(一)OC基本语法
- iOS笔记--oc语法7 (深、浅复制的基本概念)
- ios开发(五):基本语法 Class
- 黑马程序员:OC基本语法
- 黑马程序员_ios基础总结9_OC特有语法
- 黑马程序员-IOS-OC基础-面向对象语法一
- 黑马程序员_ios基础总结2_C语言基本语法一
- Objective-c学习笔记(一)oc的基本语法
- 黑马程序员-IOS-OC基础-浅析Copy语法
- 黑马程序员_ios基础总结5_C语言基本语法四
- 黑马程序员_ios基础总结4_C语言基本语法三
- IOS 开发学习(1): 学习纲领以及Objective-C 基本语法学习