ios类加载

原创
2016/11/11 14:01
阅读数 16

1.类

a.在创建对象的时候,肯定要访问类

b.l声明1个类的指针变量也会访问类

c.在程序运行期间,当某个类第1次被访问到的时候,会将这个类(不对对象)存储到内存中的代码段区域,这个过程叫做类加载  .

例如

int mian(){

   Person *p1 ;  //第一次访问,此时加载到代码段

   Person *p1 ;   //第二次访问,此时代码段区域已经加载了类,此时不在加载类

}

2.对象 

    假设:

    int mian(){

            Person *p1 = [Person new]   ;  //

}

a. Person *p1 ; 会在栈内存中申请1块空间,在栈内存中声明1个Person类型的指针变量p1.p1是一个指针变量,那么只能存放地址(指向[Person new])

b.[Person new];真正在内存中创建对象的代码:    

                            new做的事情:

                                A,在堆内存中申请1块适合大小的空间,

                               B,在这个空间中根据类的模板创建对象(创建的对象包括属性,

                                        例如:name,age,height等属性),同时对象中还存放另外一个属性叫isa,是一个指针,指向对象所属的类在代码段中的地址。

                                C.对象初始化:如果属性的类型是基本数据类型,那么默认值为0

                                                          如果属性的类型是c语言类型,那么默认值为NULL

                                                           如果属性的类型是OC的类指针类型,那么默认值为nil

                                   

                                  

 

                  

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
你好,我是深圳一家以家居安防为核心的智能家居公司的HR在招聘一位会ffmpeg的Android开发工程师和一位iOS开工程师。不知道您自己或者身边同事朋友有没有在看工作机会的呢?如果感兴趣可以发简历到3288771685@qq.com或者加起QQ。
2016/11/11 15:46
回复
举报
更多评论
打赏
1 评论
0 收藏
0
分享
返回顶部
顶部