取消ARC
要想手動調用retain、release等方法,在創建項目的時候不要勾選ARC
目前已經默認爲使用arc。所以要想修改必須在xcode中將默認的yes修改成no
開啓殭屍對象監控
默認情況下,Xcode是不會管殭屍對象的,使用一塊被釋放的內存也不會報錯。爲了方便調試,應該開啓殭屍對象監控
重點內容
xcode 左邊導航欄中,類文件後面的標記“A”,”M”,”?,有需要的朋友可以參考下。
“M” =Locallymodified
“U” =Updatedinrepository
“A” =Locallyadded
“D” =Locallydeleted
“I” =Ignored
“R” =Replacedintherepository
“–” “=” Thecontentsofthefolderhavemixedstatus;displaythecontentstoseeindividualstatus
“?” =Notundersourcecontrol
‘A’新增
‘D’刪除
‘M’修改
‘R’替代
‘C’衝突
‘I’忽略
‘?’未受控
‘!’丟失,一般是將受控文件直接刪除導致
這些標記跟你使用的代碼託管工具或者xcode自帶的svn代碼託管工具有關,怎樣消除:
1、代碼中 某文件後面有 “M” 標記,表示該文件已被修改,需要 commit.
(右鍵該文件 -> source control -> commit selected file…)
2、代碼中 某文件後面有 “A” 標記,表示該文件是新添加的,已受SVN管理,需要 commit.
(右鍵該文件 -> source control -> commit selected file…)
3、代碼中 某文件後面有 “?” 標記,表示該文件是新添加的,並且脫離了SVN的管理,首先需要add,然後 commit.
(右鍵該文件 -> source control -> Add,這樣該文件的標記就變爲 “A”,然後在 commit)
4、代碼中 某文件後面有 “D” 標記,表示該文件在服務器上已被刪除,這時update的話,可刪除本地的文件。
5、代碼中 某文件後面有 “C” 標記,表示該文件與服務器的文件衝突。
一、快捷鍵的使用
經常用到的快捷鍵如下:
新建
shift + cmd + n 新建項目
cmd + n 新建文件
視圖
option + cmd + 回車 打開助理編輯器
cmd + 回車 顯示主窗口
cmd + 0 導航窗口
option + cmd + 0 工具窗口
在.m & .h之間切換 control + cmd + 上/下
按照瀏覽文件的前後順序切換 control + cmd + 左右
查看頭文件 control + cmd + j
切換到對應的函數control + 6 支持智能輸入,注意輸入法
運行
cmd + r 運行
cmd + . 停止
cmd + b 編譯
cmd + shift + b 靜態內存分析編譯,可以檢查程序結構上是否存在內存泄露
排版
control + i 將選中按鈕重新縮進
cmd + ] 向右增加縮進
cmd + [ 向左減少縮進
cmd + / 註釋/取消註釋,提示:取消註釋時,註釋雙斜線必須在行首
cmd + 向上 到文件開始位置
cmd + 向下 到文件末尾位置
二、OC專有註釋
註釋形式和效果
(1)#pragma mark 註釋
(2)#pragma mark- 註釋
三、warning的使用(注意)
使用形式:
#warning 代碼還沒有寫完
可以幫助我們對代碼進行快速的定位
http://images.cnitblog.com/i/450136/201405/251739146063542.png
四、代碼塊的使用
對於經常使用的代碼塊,可以以代碼塊的方式保存起來,設置提示詞,以便快速的編碼。
設置
對代碼塊進行適當的編輯
使用<#name#>和<#type#>讓保存的代碼塊不被“寫死”;
設置後的提示效果:
五、打印內容查看(重寫description方法的技巧)
代碼示例:
- (NSString *)description
{
// 包含對象類型名稱,以及對象的指針地址
return [NSString stringWithFormat:@"<%@: %p> {answer: %@, title: %@, icon: %@, options: %@}", [self class], self, self.answer, self.title, self.icon, self.options];
}
提示:
如果要在開發時,跟蹤對象的明細信息,可以重寫description方法,類似於java的toString()
爲根類添加一個擴展
1 #import "NSArray+Log.h"
2
3 @implementation NSArray (Log)
4
5 - (NSString *)descriptionWithLocale:(id)locale
6 {
7 // 遍歷數組中的所有內容,將內容拼接成一個新的字符串返回
8 NSMutableString *strM = [NSMutableString string];
9
10 [strM appendString:@"(\n"];
11
12 // 遍歷數組,self就是當前的數組
13 for (id obj in self) {
14 // 在拼接字符串時,會調用obj的description方法
15 [strM appendFormat:@"\t%@,\n", obj];
16 }
17 [strM appendString:@")"];
18 return strM;
19 }
20
21 @end