iOS 開(kāi)發(fā)的9個(gè)超有用小技巧
1.如何快速的查看一段代碼的執(zhí)行時(shí)間。
- #define TICK NSDate *startTime = [NSDate date]
- #define TOCK NSLog(@"Time: %f", -[startTime timeIntervalSinceNow])
在想要查看執(zhí)行時(shí)間的代碼的地方進(jìn)行這么處理
- TICK
- //do your work here
- TOCK
2.如何快速查看一個(gè)函數(shù)的調(diào)用次數(shù),且不添加一句代碼。 如下圖
這種方法適合于一個(gè)if方法,一個(gè)for循環(huán),而且不會(huì)中斷程序,切不需要加一句代碼。但是一定要記得選中下面的automatically continue after evaluting actions;
3.在使用view的縮放的時(shí)候,layer.border.width隨著view的放大,會(huì)出現(xiàn)鋸齒化的問(wèn)題,解決這個(gè)問(wèn)題需要設(shè)置這個(gè)屬性。
- self.layer.allowsEdgeAntialiasing = YES;
4.instrument中time profile中的self, #self,%self各代表什么 ?
下面引用了一下網(wǎng)上的具體內(nèi)容
“Self is "The number of times the symbol calls itself." according to the Apple Docs on the Time Profiler.
From the way the numbers look though, it seems self is the summed duration of samples that had this symbol at the bottom of its stack trace. That would make:
self: the number of samples where this symbol was at the bottom of the stack trace
% self: the percent of self samples relative to total samples of currently displayed call tree
(eg - #self / total samples).
So this wouldn't tell you how many times a method was called. But it would give you an idea how much time is spent in a method or lower in the call tree.”
5.如何快速添加一個(gè)全局異常斷點(diǎn),(一步頂三步)。和添加一個(gè)symbloic斷點(diǎn),(一步還是頂三步)添加一個(gè)斷點(diǎn)不使用鼠標(biāo)
看到圖了吧,加這些斷點(diǎn)完全不需要?jiǎng)右幌率髽?biāo)(恕我吹牛B了),加單獨(dú)斷點(diǎn)的時(shí)候動(dòng)了下鼠標(biāo),但那是我故意讓你們看到我是有鼠標(biāo)的。
首先All Exception斷點(diǎn)是我們很常用的,這個(gè)我是這樣用一個(gè)快捷鍵做到的!通過(guò)改鍵command +p 為加異常斷點(diǎn)的,要說(shuō)怎么改,翻我以前博客去!
然后加symbloic的快捷鍵為commnamd + option + \
加一個(gè)單獨(dú)一行斷點(diǎn)的快捷鍵為command + \
6.在iOS開(kāi)發(fā)中我們?cè)诤彤a(chǎn)品和設(shè)計(jì)溝通的時(shí)候我們經(jīng)常需要截取手機(jī)的屏幕或者模擬器上的屏幕,我們用手機(jī)可能會(huì)使用 Home 鍵 + 開(kāi)機(jī)鍵,然后再通過(guò) iPhoto 或者在手機(jī)用 qq 傳過(guò)去,但是我教大家一個(gè)方法直接使用快捷鍵截取手機(jī)上的圖到電腦桌面上。
具體方法見(jiàn)下圖 :
在 Xcode的 debug菜單中找到viewDebugging,即使當(dāng)前程序沒(méi)有運(yùn)行,也可以直接截取手機(jī)上的圖片直接到桌面。(哈哈哈這樣再不需要TM的按TM的手機(jī)上的按鍵再用 iPhoto拷貝到桌面了)。年輕人你以為這樣就完了嗎???你還是太稚嫩啊,誰(shuí)TM的想找到這個(gè)debug菜單再找到下面的一堆東西,當(dāng)然要改成快捷鍵了,如何做看下圖。
看到這個(gè)血淋漓的紅色的箭頭了嘛,你首先找到 debug 的快捷鍵菜單項(xiàng),在把它改成 ?+?這個(gè),這時(shí)候有沖突了怎么辦?你不知道有沒(méi)有影響到其他快捷鍵怎么辦,小傻瓜,改唄!把以前的這個(gè)功能去掉?+?(ps:以前的就是 show complete list 如同點(diǎn)擊一個(gè)?一個(gè)效果,那你還要它做嘛啊?),為什么改成這個(gè)份聽(tīng)哥的,你改成這個(gè)絕壁會(huì)用著特別爽。(好了以后要給產(chǎn)品還是設(shè)計(jì)發(fā)圖分分鐘的事情了~~)
7.iOS調(diào)試技巧只顯示圖片的對(duì)齊尺寸和 frame。
我記得以前一個(gè)說(shuō)顯示對(duì)齊尺寸的,他是這么做的:
“在應(yīng)項(xiàng)目的Edit Scheme中設(shè)置一個(gè)啟動(dòng)參數(shù) UIViewShowAlignmentRects并將參數(shù)值設(shè)置為YES,可以讓程序在運(yùn)行時(shí)顯示視圖的對(duì)齊矩陣(alignment rectangle)。”
我當(dāng)時(shí)看完就不屑一顧,這么復(fù)雜誰(shuí)用啊。你們真的以為我再裝b嘛,好吧,你們猜對(duì)了,我確實(shí)在裝b,你們看下面的效果就知道我為什么在裝b了。
可能我圖片切換的比較快,效果你們沒(méi)看的明顯。你們可以自己試下,這個(gè)可以隨時(shí)切換是否顯示ShowAlignmentRect,或者每一個(gè)控件的尺寸包括系統(tǒng)的控件(譬如系統(tǒng)的 uibutton 它會(huì)顯示內(nèi)部的 imageview 的尺寸和 label 的尺寸然后用不同的顏色區(qū)別,xcode 顏色區(qū)分的還是相當(dāng)美觀的)
這尼瑪可是大殺器了,有了這個(gè)你的控件的大小位置是否顯示都根本不用我前面所說(shuō)的 lldb 了,而且方便快捷,你問(wèn)我是怎么做的,我可沒(méi)配置辣么多的一對(duì)參數(shù),我也懶得記,當(dāng)然我是用快捷鍵了!細(xì)心的同學(xué)可能會(huì)注意到前面的 截圖viewDebuging中有showViewFrame 和ShowAlignmentRects,當(dāng)然點(diǎn)擊這些菜單就會(huì)出現(xiàn)我這些效果了,我當(dāng)然又是改快捷鍵了,我時(shí)間很寶貴的。
8.在我們開(kāi)發(fā)中經(jīng)常使用 git,然后我們修改了這個(gè)文件不知道哪里改錯(cuò)了,我們經(jīng)常需要恢復(fù)這個(gè)文件,這樣我們可能會(huì)切到終端,也可能會(huì)直接使用 xcode來(lái)去放棄文件的修改,幸好xcode對(duì) source Control支持的比較好,所以我們可以通過(guò)修改這些方式的快捷鍵來(lái)快速恢復(fù)文件,下面是我的一些設(shè)置,用好了絕壁提高你的效率.
對(duì)于我來(lái)說(shuō)常用的也就是放棄當(dāng)前文件的修改和放棄所有文件的修改,和翻看git History如果當(dāng)前文件修改的時(shí)候怎么都回退不到正確的,這幾個(gè)東西可起大作用了!
9.在 iOS 中我們經(jīng)常會(huì)碰到一些imagView的UIContentMode的顯示方式,最初我怎么記也搞不太清楚,后來(lái)我看到了這幅圖,我發(fā)現(xiàn)我遇到了指明燈了,一圖解千惑,這里分享給大家。