一庐扫、項目中的常見文件:
1.Texts文件夾:單元測試2.Frameworks:依賴的框架3.Info.plist:項目配置文件,PPT演示
?為什么要搞個配置文件缤谎,保存應(yīng)用的信息,軟件名稱等等,相當(dāng)于身份證。程序加載首先加載配置文件,讀取軟件名稱等信息跪削。
3.1> Bundle display name:項目名稱
3.2> Bundle identifier:項目的唯一標(biāo)識
3.3> Bundle version:項目版本4.Info.plist對應(yīng)xcode的project的圖形界面,改圖形界面的東西迂求,就會改變Info.plist碾盐。
比如方向等
5.pch文件:也是一個頭文件,能被項目中的其他所有源文件共享和訪問锁摔。PPT演示
○為什么要搞個pch文件廓旬,提需求,如果一個宏谐腰,很多文件都需要用
到孕豹,怎么解決,搞個公用的頭文件十气,同時導(dǎo)入這個頭文件励背。
5.1pch作用:
1>放一些全局的宏
2>導(dǎo)入一些全局都需要的頭文件,一般開發(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> 還可以通過一個宏進(jìn)行條件編譯,在調(diào)試階段走芋,xcode會自動定
義一個DEBUG宏绩郎,利用這個宏潘鲫,就能進(jìn)行條件編譯.
5.3在pch寫的有關(guān)OC的東西,最好放在#ifdef __OBJC__肋杖,Xcode在每個OC文
件中都定義了這個宏溉仑,也就意味著只有OC中的文件才擁有這些宏,避免
5.3在pch寫的有關(guān)OC的東西状植,最好放在#ifdef __OBJC__浊竟,Xcode在每個OC文
件中都定義了這個宏,也就意味著只有OC中的文件才擁有這些宏津畸,避免
項目中有C文件的時候逐沙,報錯。
5.4如果在c文件中洼畅,使用#import,就會報錯棚赔,因為c文件不能識別#import帝簇,
只有OC文件才能識別。在pch中的東西能被項目中的所有文件共享靠益,c文
件共享#import就報錯丧肴。
二、自己在編寫程序的時候胧后,遇到BUG是如何解決的芋浮?用了哪些解決方法?
1> 有效的Log壳快;Log一些重要的事件
2> 全局?jǐn)帱c:
3> 條件斷點:
4> 控制臺進(jìn)行手動打又较铩:po
5> 跟蹤對象的生命周期;跟蹤數(shù)據(jù)傳遞的過程
6> 分析層級結(jié)構(gòu)
7> Enable NSZombie Objects(開啟僵尸對象):開啟僵尸對象眶痰,首先打開“Edit Scheme”瘤旨,然后選擇Diagnostics選項卡,勾選Enable NSZombie Objects選項竖伯。
8> 靜態(tài)分析(Analyze內(nèi)存泄漏分析)和動態(tài)分析()