1、在控制器中註冊網路狀態改變的通知
- (void)viewdidload
2、在控制器中編寫接收到通知後的處理事件
- (void)reachabilitychanged:(nsnotification *)note
//有網路進入介面初始化
else
}
3、在控制器中移除通知觀察者
- (void)dealloc
以上幾個步驟就是reachability的整個使用流程。需要注意的是,reachability這個庫的通知事件有時會被觸發兩次。比如在聯網狀態下進入應用,「有網路」這句log可能會列印兩次,並且這種情況發生的頻率挺高的。通過查詢資料(主要是在stack overflow上)和多次測試,證實了這個事實。為了避免initsubviews方法被執行多次,可以考慮加入乙個通知計數器,當計數器為1時才執行初始化流程,部分**如下:
宣告通知計數器並初始化
static int countnoti = 0;
通知處理事件
//判斷網路狀體,無網路彈窗提示
if (status == notreachable)
//有網路進入介面初始化
else
}
IOS學習筆記之NSZone
在碰到allocwithzone,copywithzone總會有個疑問,這個nszone到底是個什麼東西?簡單來說,可以想象成乙個記憶體池,alloc或是dealloc這些操作,都是在這個記憶體池中操作的。cocoa總是會配置乙個預設的nszone,任何預設的記憶體操作都是在這個 zone 上操作的...
IOS學習筆記之UISearchBar
1 概念 搜尋條 uisearchbar 由乙個文字框和幾個按鈕組成,當使用者在文字框內輸入部分內容之後,程式即可按指定的規則執行搜尋。uisearchbar控制項的不同部分會激發不同的事件,而這些事件也由該控制項對應的委託物件處理,uisearchbar的委託物件必須實現uisearchbarde...
IOS學習筆記之通知
1 通知的概念 ios系統提供了nsnotificationcenter 通知中心 設計,這種設計允許開發者以松耦合的方式實現ios 應用內各個物件之間的通訊。nsnotificationcneter實現了觀察者模式,允許應用的不同物件之間以松耦合的方式進行通訊。nsnotificationcent...