iOS教學
iOS (iPhone, iPad)教學
IOS - 快速入門
IOS - 開發環境配置
iOS - Objective-C基礎
iOS - 創建第一個iPhone應用
IOS - 動作和插座(Outlets)
iOS - Delegates實例
iOS - UI元素
iOS - Text Field(文本域)
IOS - 輸入類型 文本字段
iOS - Buttons(按鈕)
iOS - Labels(標籤)
iOS - Toolbar(工具欄)
iOS - Status Bar(狀態欄)
iOS - Navigation Bar(導航欄)
iOS - Tab bar(標籤欄)
iOS - Image View(圖像視圖)
iOS - Scroll View(滾動視圖)
iOS - Table View(表格視圖)
iOS - Split View(分割視圖)
iOS - Text View(文本視圖)
iOS - View Transitions(視圖轉換)
iOS - Pickers(選取器)
iOS - Switches(切換/開關)
iOS - Sliders(滑動條)
iOS - Alerts(警示)
iOS - Icons(圖標)
iOS - Accelerometer(加速度傳感器)
IOS - 通用應用程序
IOS - 攝像頭管理
iOS - 位置處理
iOS - SQLite 數據庫
iOS - 發送電子郵箱(Email)
iOS - 音頻和視頻
IOS - 文件處理
IOS - 訪問地圖
iOS - 應用程序內購買
iOS - iAd 整合
iOS - GameKit
iOS - Storyboards(演示圖板演)
IOS - 自動佈局
iOS - Twitter & Facebook
iOS - 內存管理
IOS - 應用程序調試
iOS - 內存管理
簡介
最初是在iOS內存管理非ARC(自動引用計數),在那裏我們有保留和釋放對象。現在,它支持ARC,我們並不需要添加保留和釋放。其實Xcode在編譯時會自動負責工作。
面臨的問題
根據蘋果說明文檔中說到面臨的兩個主要問題是:
- 釋放或覆蓋的數據仍然在使用。這將造成內存損壞,通常在應用程序崩潰,或者更糟,損壞的用戶數據。
- 不釋放不再使用的數據會導致內存泄漏。分配的內存,內存泄漏不會釋放,即使它從來沒有再次使用。泄漏會導致應用程序的內存使用量日益增加,這反過來又可能會導致系統性能較差或(在iOS),申請被終止。
內存管理規則
- 我們創建自己的對象,我們隨後釋放他們時,當他們不再需要的時候。
- 保留可以使用,從而獲得一個物體的所有權,我們沒有創建。必須釋放這些對象時,它沒有必要的。
- 不要釋放我們自己沒有擁有的對象。
ARC處理內存
不需要使用ARC的釋放和保留。因此,所有的視圖控制器的對象時,將會釋放視圖控制器被刪除。同樣,任何對象的子對象將被釋放,當他們被釋放。請記住,如果其他類一個類的對象具有很強的借鑑意義,那麼整個類將不會被釋放。因此建議使用弱屬性委託
使用內存管理工具
我們可以分析的Xcode工具儀器的幫助下,及內存的使用情況。它包括的工具,如活動監視器,分配,泄漏,殭屍等
分析內存分配的步驟
1. 打開一個現有的應用程序。
2. 選擇產品,配置文件如下所示。
3. 然後選擇在下一個畫面中的分配如下所示,選擇「配置文件」。
4. 我們將看到不同的對象的內存分配,如下圖所示。
5. 您可以切換視圖控制器,並檢查內存是否被正確釋放。
6. 同樣,我們可以使用活動監視器看到總內存分配給應用程序,而不是分配,並如下圖所示。
7. 這些工具可以幫助在知道我們是多麼的使用和在什麼地方可能發生泄漏。