1.@符号
- 在OC中,绝大部分关键字由@开头
@interface @implementation @end
@public @protected @private @selector
@try @catch @throw @required @class - 字符串的定义要添加@,即@“字符串”
NSString *name = @"姓名";
2.NSlog输出
在OC中用到的打印函数是NSlog,相当于printf
NSLog(@"Hello world");
和printf的区别:
- NSLog输出后会自动换行,printf输出后不会自动换行
- 使用NSLog需要#import, 使用printf需要#include
3. #import
“#”表示的是一个预处理指令。
包含头文件使用,和#include用法相同,并且可以保证你的程序只包含相同的头文件一次。
#import <Foundation/Foundation.h>
4. 拓展名
-
.h头文件。头文件包涵类的定义、类型、方法以及常量的声明
-
.m 源文件。这个典型的扩展名用来定义源文件。和C语言中多个.c文件的开发是一样的
5. BOOL
和C中的bool的区别
BOOL
YES(1),NO(0)
bool
true(!0),false(0)
6. id
这是OC新加的一个数据类型,它是一般的对象类型,能够存储任何类型的方法。
7. nil
在OC中,相对于C中的NULL,用的是nil。这两者是等价的。
8.类
定义一个类需要有两个部分:接口和实现。接口文件包含了类的声明,定义了实例变量和方法。实现文件包含了具体的函数的实现代码。
- .h类的声明
语法格式:
@interface 类名 : NSObject
{
声明特征(变量)
}
-声明方法
@end
@interface Person : NSObject
{
int age;
NSString *name;
BOOL isBoy;
}
- (void) eat;
@end
注意: interface在 OC 表示的是头文件的标识。@end表示声明完成
- .m类的实现
语法格式:
@implementation 类名
{
特征和变量
}
方法实现
@end
@implementation Person
{
float money;
}
- (void) eat{
NSLog(@"really good");
}
@end
9. 方法
类似于函数,可以类比函数来学习
在OC中一个类中的方法有两种类型:实例方法,类方法。
实例方法前用(-)号表明,类方法用(+)表明。
方法声明
//无参
-(void)eat;
//一个参数
- (double)square:(double)number;
//多个参数
-(void)setName:(NSString *)name withAge:(int)age withIsBoy:(BOOL)isBoy;
方法实现
-(void)eat{
NSLog(@"really good");
}
- (double)square:(double)number
{
return number * number;
}
-(void)setName:(NSString *)name withAge:(int)age withIsBoy:(BOOL)isBoy{
_name = name;
_age = age;
_isBoy = isBoy;
}
10. 对象
- 定义变量的语法格式
类名* 变量名;
Person *person;
- 创建对象的语法格式为
[[类名 alloc]初始化方法];
person = [[Person alloc] init];
- 通过对象访问成员变量
对象->成员变量名
person->_name = 3
- 通过对象来调用实例方法,通过类调用类方法