一種觀察物件釋放的關聯引用用法

2021-07-02 15:32:51 字數 727 閱讀 9182

關聯引用的引數物件的釋放取決於與它關聯的那個物件的釋放。

建立乙個觀察類:

#import const char kwatcher;

@inte***ce watcher : nsobject

@end

#import "watcher.h"

@implementation watcher

- (void)dealloc

@end

測試**:

objc_setassociatedobject(self, &kwatcher, [watcher new], objc_association_retain_nonatomic);

nsmutablearray *arr = [nsmutablearray array];

nsarray *array = [nsarray arraywithobject:@"888"];

objc_setassociatedobject(arr, &kwatcherkey, [watcher new], objc_association_retain_nonatomic);

當self或arr釋放的時候,所關聯的值([watcher new]生成的),也會釋放,呼叫
- (void)dealloc
所以起到了監聽物件銷毀的目的。

alarm的一種用法。

alarm函式可以用於防止讀阻塞。但如果系統呼叫是自動重啟動的,當從sigalrm訊號處理程式返回時,read並不被中斷。在這種情形下,設定時間限制不起作用。一 源 cat n 10 10.c 1 include apue.h 23 static void sig alarm int sig no ...

Oracle update的一種用法

用於大資料量的更新,效率比較高,括號內的select語句為虛擬表,要求where欄位必須是主鍵或唯一索引 b.customer id和a.customer id 記錄一下,以後用得上。例子 update select a.city name,b.city name as new name from ...

中文編碼的一種用法

這裡通過乙個測試某些ip位址是否為特定 的例子來說明。我們假設該 的編碼用的是gb2312,並通過獲取該 的title作為檢測依據。usr bin env python encoding utf 8 略去獲取網頁的 re.ignorecase title 論壇標題 m re.search title...