對象之間的傳值與循環參考

來源:互聯網
上載者:User

標籤:使用   檔案   資料   ar   代碼   on   sp   不同的   

    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實為一個指標,但是它建立的對象用它來指向所以也用它來表示一個對象。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.