iOS開發——Xcode Analyze靜態分析
Xcode Analyze 程式碼靜態分析主要有以下作用:
記憶體洩漏(未釋放的佔記憶體的無用殭屍物件)
程式碼邏輯問題 (訪問空指標或未初始化的變數等)
宣告錯誤或無效資料及變數(從未使用過的變數等)
API呼叫錯誤(未包含使用的庫和框架)
執行Xcode中Analyze方法Product---->Analyze 分析後的以下幾種狀況:
1. 記憶體洩漏
情況1
提示資訊: Potential leak of an object 問題出在62行處
點選雙向箭頭提示如下資訊:
>1. Method returns an Objective-C object with a +1 retain count
alloc一個物件的時候,其記憶體計數(retain count)+1,
[[NSMutableString alloc] init]
->2.Object leaked: allocated object is not referenced later in this execution path and has a retain count of +1
因為content的setter方法會將object的記憶體計數+1,如下程式碼,content是retain屬性。執行完L62程式碼後,self.content的記憶體計數就為 2
@property (nonatomic, retain) NSMutableString* content;
解決措施:修改為self.content = [[[NSMutableString alloc] init] autorelease];
情況2
註釋掉CGImageRelease(imagRef)會導致imageRef物件洩漏。CG開頭的是C語言的
2.程式碼邏輯問題(Logic error)
解決措施:
如上程式碼,當Tag不等於1、2和3的時候,就會出現很問題了。len is a garbage value。建議在宣告變數時,同時進行初始化。
3、無效資料監測(Dead store)
無效資料如:Unused、Never read....未使用個變數等,這個一般開發的時候也會有黃色警告解決措施:刪除或者修改錯誤問題
4、API呼叫錯誤
NS_DESIGNATED_INITIALIZER
子類沒有重寫父類的所有初始化函式,而使用者恰好直接使用父類的初始化函式初始化物件,那麼子類的成員變數就可能存在沒有正確初始化的情況。
由於:
- 便利初始化函式只能呼叫自己類中的其他初始化方法
- 指定初始化函式才有資格呼叫父類的指定初始化函式
相關推薦
iOS開發——Xcode Analyze靜態分析
Xcode Analyze 程式碼靜態分析主要有以下作用: 記憶體洩漏(未釋放的佔記憶體的無用殭屍物件) 程式碼邏輯問題 (訪問空指標或未初始化的變數等) 宣告錯誤或無效資料及變數(從未使用過的變數等)
iOS效能優化 Analyze靜態分析和Instruments效能監測
一:Analyze靜態分析 App進行Build或Archive時,會產生很多編譯警告,這些警告是編譯時產生的,靜態分析的過程也類似,在XCode Product選單下,點選Analyze對App進行靜態分析。 Analyze主要分析以下四種問題:
iOS開發 Xcode使用Analyze靜態分析
一.Analyze簡介: 我們可以使用Xcode自帶的靜態分析工具 Product->Analyze(快捷鍵command+shift+B)可以找出程式碼潛在錯誤,如記憶體洩露,未使用函式和變數,迴圈引用等 所謂靜態記憶體分析, 是指在程式沒執行的時候, 通過工
iOS開發之Xcode的靜態分析(Static Code Analysis)與常見記憶體隱患解決辦法
一.Xcode Analyze靜態分析 Static Code Analysis Static Code Analysis(靜態程式碼分析)用來發現原始碼潛在的錯誤與缺陷,原始碼編譯後只有在執行時有可能會產生細微的錯誤,他們可能難以識別和修復,所以這些潛在的威脅
iOS開發-Xcode Debug、Release、Archive、Profile、Analyze概念解釋
1,Debug和Release版本區別? 眾所周知,我們進行iOS開發,在Xcode除錯程式時,分為兩種方式,Debug和Release,在Target的Setting中相信大家應該看到很多選項都分為Debug和Release,方便我們分別設定,滿足除錯和釋出的不同
Xcode執行Analyze靜態分析
使用Xcode自帶的靜態分析工具 Product->Analyze(快捷鍵command+shift+B)可以找出程式碼潛在錯誤,如記憶體洩露,未使用函式和變數等 所謂靜態記憶體分析, 是指在程式沒執行的時候, 通過工具對程式碼直接進行分析 根據程式碼的上下文的語法結構, 讓編譯器分析記憶體情況, 檢
iOS開發 Xcode叠代問題
系統 操作 xcod 出現 spa setting image http code 這個問題主要出現在Xcode主版本升級產生的, 我是在Xcode9升級到Xcode10預見的, 碰到這個問題你需要如下操作: 1. 打開你的workspace, 找到File-&
6.5 使用CoreImage框架給圖片新增馬賽克效果 [原創iOS開發-Xcode教程]
1. 在歡迎視窗右側的歷史專案列表中,雙擊開啟之前建立的單檢視專案模板。 2. 本節課將為您演示,如何使用影象處理框架,給圖片新增畫素化濾鏡效果。首先在一個空白專案中,開啟檢視控制器的程式碼檔案。 3. 接著開始編寫程式碼,實現這項功能。 4. 首先匯入需要用到的框架。 5.
3.2 UITabBarController檢視控制器 [原創iOS開發-Xcode教程]
1. 本節課將為您演示,選項卡檢視控制器的建立和使用。首先在歡迎視窗中,點選[建立一個新專案]選項,建立一個新的專案。 2. 選擇建立一個簡單的單檢視應用。 3. 點選下一步按鈕,進入下一步設定頁面。 4. 在產品名稱輸入框內,點選輸入產品的名稱。 5. 點選下一步按鈕,進入
3.1 使用UIScrollView展示多個檢視控制器 [原創iOS開發-Xcode教程]
1. 本節課將為您演示多檢視控制器的使用。首先在歡迎視窗中,點選[建立一個新專案]選項,建立一個新的專案。 2. 選擇建立一個簡單的單檢視應用。 3. 點選下一步按鈕,進入下一步設定頁面。 4. 在產品名稱輸入框內,點選輸入產品的名稱。 5. 保持其它引數不變,點選下一步按鈕
iOS開發:dSYM檔案分析
專案開發過程中,使用了友盟統計,就能在友盟給出的錯誤資訊統計中,能比較方便的找出客戶端異常的資訊,但是很多像陣列越界卻只給出了 *** -[__NSArrayM objectAtIndex:]: index 50 beyond bounds [0 .. 39]
iOS開發Xcode的圖片管理(Images.xcassets)
一、首先,在iOS來法中使用的圖片格式主要是JPG和PNG兩種格式 (1)JPG: 壓縮比比較高,通常用於照片、網頁,屬於有失真壓縮(噪點)。解壓縮時,對CPU消耗大,意味慢,費電。 (2)PNG:壓縮比較高,無失真壓縮, 解壓縮效率高,
1.17 程式碼的查詢和替換 [原創iOS開發-Xcode教程]
1. 本節課將為您演示,如何查詢和替換指定的程式碼。首先雙擊開啟之前建立的專案模板。 2. 然後開啟檢視控制器的程式碼檔案。 3. 開啟頂部選單欄中的查詢選單。 4. 點選查詢和替換子選單。 5. 然後在替換面板中,輸入要查詢的關鍵詞。 6. 現在的程式碼編輯區,已經通過高亮
3.3 UINavigationController檢視控制器 [原創iOS開發-Xcode教程]
1. 本節課將為您演示,導航檢視控制器的使用。首先在歡迎視窗中,點選[建立一個新專案]選項,建立一個新的專案。 2. 選擇建立一個簡單的單檢視應用。 3. 點選下一步按鈕,進入下一步設定頁面。 4. 在產品名稱輸入框內,點選輸入產品的名稱。 5. 點選下一步按鈕,進入下一步設
[iOS開發]Xcode自動註釋外掛:VVDocumenter使用和安裝
Xcode自動註釋外掛:VVDocumenter使用和安裝 開源外掛: VVDocumenter 下載地址: https://github.com/onevcat/VVDocumenter-Xcode 使用方法: 在方法寫///,效果同上圖,下面有方法可以
1.3 使用資原始檔夾匯入並管理圖片素材 [原創iOS開發-Xcode教程]
1. 本節課將為您演示如何使用資原始檔夾,匯入並管理圖片資源。首先雙擊開啟之前建立的專案模板。 2. 資原始檔夾可以方便您進行圖片管理,在讀取圖片時,不需要加上圖片名的字尾。同時還可以提高軟體的安全性, 因為它會將圖片進行加密和壓縮。 3. 點選底部的加號圖示,開啟資原始檔夾
使用Analyze靜態分析程式碼
在Xcode的工具欄中,有一個Product,Product裡面的工具,可以說是Xcode中比較強大的,工程效能的調優都依賴於這些。 這篇就簡單說下Analyze,畢竟現在都用ARC開發,如不使用C
IOS開發中合併靜態庫
在xcode開發中經常會使用到一些三方的靜態庫,比如百度地圖SDK。然而在使用過程中會發現如果直接把os和simmulator裡面的兩個靜態庫拖進專案中會導致不能執行。所以只能在使用真機的時候新增os下的.a檔案 在使用模擬器的時候新增simulator下的.a檔案。這樣就
iOS 靜態分析Analyze
Analyze靜態分析.png 快捷方式 : command + shift + b Analyze 靜態分析分析以下4個問題: 1、邏輯錯誤; 2、記憶體管理錯誤; 3、宣告錯誤; 4、API 呼叫錯誤; 因為1、3、4在編譯過程都會有警告,Analyze的主要優勢在於靜態分析記憶體洩露及部分程式碼
從零開始學習iOS開發1:認識xcode
連接 啟動圖標 主動 認識 tor 音樂 滴滴打車 啟動 and 在開始之前還是不得不提一下iPhone應用開發的工具,我當然之前是沒接觸過iPhone開發,也沒使用過apple的不論什麽一種設備。所以我的概念中僅僅知道xcode是最專業的iOS開發工具。如今它是免費