f(sixleaves) = sixleaves

重剑无锋 大巧不工

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  95 随笔 :: 0 文章 :: 7 评论 :: 0 Trackbacks
 1 #import <Foundation/Foundation.h>
 2 
 3 
 4 @interface Person : NSObject
 5 @property int age;
 6 @end
 7 
 8 @implementation Person
 9 
10 // override
11 - (void)init
12 {
13 
14     if (self = [super init])
15     {
16         _age = 10;
17     }
18     return self;
19 }
20 @end
21 
22 
23 int main()
24 {
25 
26     Person *p = [[Person alloc] init];
27     /*
28         在为Person类分配完空间,返回未初始化的Person对象后。
29         先调用Person对象的构造方法,但是由于递归的特性,Person构造
30         函数内又调用NSObject的构造函数,所以是先完成NSObject对象的
31         构造方法,再初始化Person自定义的成员变量。
32 
33         主要关注下NSObject得构造方法做什么,根据苹果的官方文档。NSObject
34         只有一个成员变量,isa。init的工作就是初始化isa,所以NSObject的构造
35         方法大概是这样子的。
36 
37         - (id)init
38         {
39             isa = [Person class];
40             return self
41         }
42         
43         总结:也就是NSObject的构造函数让isa指针指向了当前对象所在的类。
44     */
45     return 0;
46 }
posted on 2015-05-02 13:57 swp 阅读(107) 评论(0)  编辑 收藏 引用 所属分类: objective-c

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理