首页 > 代码库 > 对象之间的传值与循环引用

对象之间的传值与循环引用

    1.传值的第一条也是最重要的一条就是必须找到对象,然后让俩个对象碰面,在同一个空间里才能去传值了

    2.用对象的属性,或是用指针把另一个对象的self中所有能用数据都统统给拿过来,协议指针就是一个很典型的例子,还有就是用函数的方法它可以用参数和返回值实现双向传值

    3.俩个对象互相引用时可以用(week,assgin)来定义属性、指针避免引用循环,

    

    4.在storyboard中的每一个对象对应着一个对象,在用户眼中的一个页面也就对应代码    

    5.还有头文件的引用循环,就是在俩个文件中‘头文件’中互相使用头文件时会导致引用循环,我们看到的现象就是明明有头文件却说找不到它,这时候的解决办法就是把其中一个头文件去掉,用 @class ViewController; 来告知它这个类的存在,不需要去找寻头文件了 延后加载头文件能加快运行速度吧

 
6.俩个不同的类可以利用属性来传递信息,需要在接受信息的一个类里新建一个属性来存储数据,然后在另一个类里面用这个对象的属性传递信息。

还可以利用定义属性(指针)来指向另一个类别,在另一个类中可将其中的所有属性和方法传递到这个类中来使用。
 A类                           B类
@property x ;             @property  A *y;
 b.y=self ; 传A的信息  a.x=num;  给它数据可在A中使用
-(void)did                    -(void)done

如上可将A类中的方法及属性在B中使用
B中的数据也可以通过属性传到A中对象

在B中可以用[self.y   did]调用A中的方法,不需要再在B中新建a的对象来实现A中的方法,就算新建对象也不能实现方法因为它是一个全新的对象不具备在A中的一些性质或初始化,self.y就相当于A *x1=[A  alloc]的新对象,它具备一切A中的属性;

指针和对象的区别
Student *student=[[Student alloc]init];
student实为一个指针,但是它创建的对象用它来指向所以也用它来表示一个对象。