lijifeng

导航

黑马程序员——OC语言 核心语法(2)

                                                          (以下内容是对黑马苹果入学视频的个人知识点总结)

(一)id

1)简介:万能指针,能指向任何OC对象,相当于NSObject *

id类型的定义

typedef struct objc_object {

    Class isa;

} *id;

2)使用注意

// 注意:id后面不要加上*

id p = [Person new];

3)局限性

调用一个不存在的方法,编译器会马上报错

 1 int main(int argc, const char * argv[])
 2 {
 3     Person *p = [Person new];
 4     
 5     // 点语法的本质还是方法调用
 6     p.age = 10; // [p setAge:10];
 7     
 8     int a = p.age; // [p age];
 9     
10     p.name = @"Jack";
11     
12     NSString *s = p.name;
13     
14     NSLog(@"%@", s);
15     
16     return 0;
17 }

(二)构造方法

 1)new的拆分两部曲

 首先分配内存(alloc)再初始化(init)

1 Person *p = [[Person alloc] init];

2)  init方法的重写

想在对象创建完毕后,成员变量马上就有一些默认的值,就可以将init方法的重写

1 - (id)init
2 {
3     if (self = [super init])
4     {
5         _age = 10;
6     }
7     return self;
8 }

3)自定义构造方法

 构造方法的一些规范

①返回值是id类型

②方法名都以init开头

1 - (id)initWithAge:(int)age {
2     if (self = [super init]) {
3         _age = age;
4     }
5     return self;
6 }

传递多个参数进行初始化

1 - (id) initWithAge:(int)age andNo:(int)no;

 

posted on 2015-03-23 18:21  lijifeng  阅读(106)  评论(0编辑  收藏  举报