觀察者 和 block的區別

2021-07-04 22:56:28 字數 1294 閱讀 6080

通知中心

訊息————註冊觀察者————監聽有沒有訊息發出----------作出響應

步驟:1.  註冊觀察者

2.傳送訊息

3.移除

kvo

使用方法:

1.- (

void

)viewdidload //

改變背景顏色

- (void

)changecolor:(

nsnotification

*)notify 2.

- (void

bool

)animated 3.

- (void

)dealloc

block .h

//返回值(

名字)(

將來要傳的引數

)//1.

重新命名block

typedef

void

(^passcolor)(

uicolor

*color);

@inte***ce

secondviewcontroller :

uiviewcontroller

//2.

建立乙個

block

物件//copy:

是因為剛開始並不執行

,拷貝複製乙份

,放在乙個地方

,當需要的時候才會開始執行

@property

(nonatomic

,copy

)passcolor

color;

//3.

建立方法從外界傳入乙個

block

- (void

)getblockfromoutspace:(

passcolor

)color;

.m- (

void

)getblockfromoutspace:(

passcolor

)color

- (void

bool

)animated }

.m__block

rootviewcontroller

*root =

self;

//此時

second

對root

就是弱引用,

// 防止迴圈呼叫

,導致的空間不能被釋放掉

,記憶體洩露,

[secondvc getblockfromoutspace

:^(uicolor *color) ];

發布訂閱和觀察者模式的區別

有些人認為觀察者模式就是發布訂閱模式,實際上觀察者模式是包含了訂閱發布模式,發布訂閱模式只是觀察者模式中的一種。觀察者模式是觀察者和被觀察者之間的通訊,而發布訂閱模式中間增加了乙個中轉層,通過第三方來分發資訊。subject為被觀察者,subject中的狀態 state 改變,就通知 observe...

觀察者和發布訂閱模式的區別

觀察者和發布訂閱模式的區別 觀察者模式和發布訂閱模式有什麼區別?大多數的回答都是 publishers subscribers observer pattern,24種基本的設計模式並沒有發布 訂閱模式,發布訂閱模式屬於並髮型模式 像典型的mq 這兩種相似單並不可以劃等號。我們來重新來回顧一下這兩種...

python觀察者模式 python 觀察者模式

python 觀察者模式 前言e 寫的倉促就不截uml類圖了,書本chapter10,p313能看到圖 一旦觀察的主題有更新,就會通知到觀察者們,下面的例子是最簡單的乙個觀察者範例,假設這是一群投機分子密切關注 軍 火 倉庫的產品與數量變動 class inventory def init self...