一、項目中的常見文件:
1.Texts文件夾:單元測試2.Frameworks:依賴的框架3.Info.plist:項目配置文件,PPT演示
?為什么要搞個配置文件,保存應用的信息,軟件名稱等等,相當于身份證。程序加載首先加載配置文件,讀取軟件名稱等信息。
3.1> Bundle display name:項目名稱
3.2> Bundle identifier:項目的唯一標識
3.3> Bundle version:項目版本4.Info.plist對應xcode的project的圖形界面,改圖形界面的東西,就會改變Info.plist。
比如方向等
5.pch文件:也是一個頭文件,能被項目中的其他所有源文件共享和訪問。PPT演示
○為什么要搞個pch文件,提需求,如果一個宏,很多文件都需要用
到,怎么解決,搞個公用的頭文件,同時導入這個頭文件。
5.1pch作用:
1>放一些全局的宏
2>導入一些全局都需要的頭文件,一般開發(fā)中放工具類的頭文件,或者分類頭文件等。
3>管理日志輸出
為什么要管理日志輸出,因為日志輸出非常耗性能,一般發(fā)
布的時候不需要日志輸出,只有調(diào)試的時候才需要。5.2通常開發(fā)中弄一個自己的日志輸出,不要系統(tǒng)自帶的NSLog
#defineCZLog(...) NSLog(__VA_ARGS__)
...表示能接收任何參數(shù)
__VA_ARGS__ 表示左邊...的參數(shù)會替代到右邊NSLog中。
1> 如果不想打印了,直接注釋后邊的#define CZLog(...)//NSLog(__VA_ARGS__)
2> 還可以通過一個宏進行條件編譯,在調(diào)試階段,xcode會自動定
義一個DEBUG宏,利用這個宏,就能進行條件編譯.
5.3在pch寫的有關OC的東西,最好放在#ifdef __OBJC__,Xcode在每個OC文
件中都定義了這個宏,也就意味著只有OC中的文件才擁有這些宏,避免
5.3在pch寫的有關OC的東西,最好放在#ifdef __OBJC__,Xcode在每個OC文
件中都定義了這個宏,也就意味著只有OC中的文件才擁有這些宏,避免
項目中有C文件的時候,報錯。
5.4如果在c文件中,使用#import,就會報錯,因為c文件不能識別#import,
只有OC文件才能識別。在pch中的東西能被項目中的所有文件共享,c文
件共享#import就報錯。
二、自己在編寫程序的時候,遇到BUG是如何解決的?用了哪些解決方法?
1> 有效的Log;Log一些重要的事件
2> 全局斷點:
3> 條件斷點:
4> 控制臺進行手動打印:po
5> 跟蹤對象的生命周期;跟蹤數(shù)據(jù)傳遞的過程
6> 分析層級結構
7> Enable NSZombie Objects(開啟僵尸對象):開啟僵尸對象,首先打開“Edit Scheme”,然后選擇Diagnostics選項卡,勾選Enable NSZombie Objects選項。
8> 靜態(tài)分析(Analyze內(nèi)存泄漏分析)和動態(tài)分析()