前几天装了黑苹果,用着很不错,特别流畅,简洁的美深深的吸引了我。以前也曾想学OC来着,但苦于没有开发环境,不了了之,如今又重新拾起。
Objective-C程序基本组成
-
预处理程序命令(Preprocessor Commands):Objective-C在实际编译之前的操作,如
#import <Foundation/Foundation.h>
-
接口(Interface):如下便是一个创建接口的模版
@interface ClassName : SuperClass
- (return-type)methodName : (argumentType1)argumentName1
joiningArgument2 : (argumentType2)argumentName2 ...
joiningArgumentn : (argumentTypen)argumentNamen;
...
@end
- 实现(Implementation):接口在创建之后还需要具体实现,如下
@implementation ClassName
- (return-type)methodName : (argumentType1)argumentName1
joiningArgument2 : (argumentType2)argumentName2 ...
joiningArgumentn : (argumentTypen)argumentNamen {
...
}
@end
- 方法(Method):方法也有声明和实现两部分,如下
/* 方法的声明 */
- (return-type)methodName : (argumentType1)argumentName1
joiningArgument2 : (argumentType2)argumentName2 ...
joiningArgumentn : (argumentTypen)argumentNamen;
/* 方法的实现 */
- (return-type)methodName : (argumentType1)argumentName1
joiningArgument2 : (argumentType2)argumentName2 ...
joiningArgumentn : (argumentTypen)argumentNamen {
...
}
-
变量(Variables):程序可以操作的存储区域的名称。
-
声明和表达(Statements & Expressions):变量,常量,函数等声明和算术,赋值等表达式。
-
注释(Comments):
/* ... */
,被包括在这里的字符串会被编译器忽略
基础语法
-
Objective-C令牌(Tokens):Objective-C程序由各种令牌组成,令牌可以是标识符,关键字,字符串或符号等等。
-
分号;(Semicolons):分号为语句终止符,每个单句都必须以分号结束。
-
注释(Comments):
/* 这里的内容会被编译器忽略 */
-
标识符(Identifiers):用于标识变量,函数或者其他自定义项的名称。标识符以字母
A
到Z
,a
到z
或下划线_
开头,后面跟零个或多个字母,下划线或数字0
到9
。 -
关键字(Keywords):不能被用作变量,常量或其他任何标识符名称。
auto | else | long | switch |
---|---|---|---|
break | enum | register | typedef |
case | extern | return | union |
char | float | short | unsigned |
const | for | signed | void |
continue | goto | sizeof | volatile |
default | if | static | while |
do | int | struct | _Packed |
double | protocol | interface | implementation |
NSObject | NSInteger | NSNumber | CGFloat |
property | nonatomic | retain | strong |
weak | unsafe_unretained | readwrite | readonly |
- 空白格(Whitespace):空格,制表符,换行符和注释。
数据类型
-
基本类型:属于算术类型,有整数类型,浮点类型。
-
枚举类型:属于算术类型,与C/C++中的枚举类型相似。如下
typedef NS_ENUM(NSUInteger, direction) {
/* 若没有明确赋值,则第一个赋值默认从0开始 */
left = 0,
right,
down,
up,
};
-
void类型:表示没有可用的值。
-
派生类型:指针类型,数组类型,结构类型,联合类型和函数类型。
数组类型和结构类型统称为聚合类型。
表达式
-
左值:引用内存位置的表达式,可以在赋值的左侧或右侧。
-
右值:是指存储在内存中某个地址的数据值,不能被赋值。
网友评论