ios開發 - 類與類之間的參數傳遞

ios中類與類之間的信息參數傳遞我總結出來有四種:java

通知NSNotificationios

協議Delegate設計模式

單例設計模式api

塊語法blocksession

 

Notification動畫

當一個類觸發了某個方法發出了通知,另外一個不相關的類設置了通知監聽, 這樣這個類就會執行收到通知後的一系列操做。 通常不用這個方法, 由於通知不少的時候項目就很差管理了。this

 

Delegate設計

這個類的方法由另外一個類來實現。代理

Class A 申明瞭代理 id<CertainProtocol> delegate, 因此代理類須要實現certainprotocol中的方法, io

self.delegate = b;   [self.delegate methodA]; 

因爲methodA是由class B實現的, 因此B中的信息就能取到。

 

單例

相似於java ee中的session,每一個類均可以改變和取得這個單例的值,很容易理解。

 

block

block的思路理解起來有點繞,模式相似於delegate,但比delegate用起來方便,不須要申明協議。是一種回調機制。

Class A:

-(void)objectMethod:(int(^)(int,int))block {

  block(10,20);

}

A中這個方法定義的block要執行的參數,但如何執行,須要調用這個方法的類去定義。

Class B:

[a objectMethod:^(int a, int b) {

  //call back, using the params in this class

  return a+b;

}];

 

補充一點, 如動畫和模態視圖的回調也是用block實現的, 在api方法中定義了出現模態視圖的一系列操做,在finish時執行了block(),這個block如何執行就由調用這個方法的類去實現。

相關文章
相關標籤/搜索