近期填坑小結(jié)

最近工作中碰到了一些問題蓄拣,翻翻查查的都解決了,也學(xué)到了一些東西重罪,記錄下來備忘吧砸泛。


1、斷點(diǎn)調(diào)試時(shí)變量值都為nil蛆封,取不到有效值

問題原因:之前調(diào)試一個(gè)Release版本崩潰時(shí)唇礁,將運(yùn)行模式改為了Release,沒有改回來
Debug和Release區(qū)別:

  • Debug:調(diào)試版本惨篱,是面向開發(fā)者的盏筐,只有Debug版本的程序才能使用Trace/Assert等調(diào)試輸出語句
  • Release:發(fā)布版本,是面向用戶的砸讳,Debug和Release調(diào)用的是兩個(gè)不同的底層庫琢融,Release版本不包含任何調(diào)試信息,所以體積小簿寂、運(yùn)行速度快

Debug和Release在內(nèi)存分配和釋放方式上是不同的漾抬,Debug模式下內(nèi)存會(huì)延遲釋放,但Release模式下達(dá)到釋放條件的會(huì)立即釋放常遂。只要我們?cè)赬code的Edit Scheme-->Run中選中了Debug executable纳令,兩種模式運(yùn)行項(xiàng)目后都是可以打斷點(diǎn)的,但是Release模式下,斷點(diǎn)處的變量信息在控制臺(tái)看到的都是nil平绩,打印輸出的話會(huì)提示variables may not be available圈匆。因此Release版本下的調(diào)試操作實(shí)際上是沒有任何意義的,調(diào)試結(jié)果也不具有參考價(jià)值捏雌。


2跃赚、UITableView點(diǎn)擊Cell,第一次點(diǎn)擊沒有觸發(fā)tableView:didSelectRowAtIndexPath:方法性湿,第二次可以觸發(fā)

問題原因:
UIScrollView子控件為UITableView的問題纬傲,在官方文檔找到如下解釋:

Important
You should not embed UIWebView or UITableView objects in UIScrollView objects. If you do so, unexpected behavior can result because touch events for the two objects can be mixed up and wrongly handled.

官方文檔的這段話意思是說:我們不應(yīng)該把UIWebView或者UITableView嵌入到UIScrollView中去使用。如果我們這樣做了肤频,可能會(huì)導(dǎo)致不可預(yù)見的行為發(fā)生叹括,因?yàn)閁IWebView或UITableView對(duì)象和UIScrollView對(duì)象的觸摸事件會(huì)被混在一塊并被錯(cuò)誤的處理。

解決方案:
如果是UITableView的話着裹,將scrollEnabled屬性設(shè)置為YES,這樣能夠讓內(nèi)部的UITableView對(duì)象知道如何去正確處理這個(gè)UIScrollView的滾動(dòng)相關(guān)的觸摸事件米同。但既然官方文檔不建議這么做骇扇,那么還是盡量避免把UIWebView或者UITableView放到UIScrollView中去使用。


3面粮、項(xiàng)目運(yùn)行后控制臺(tái)打出很多l(xiāng)og:

[framework] CUICatalog: Invalid asset name supplied: '(null)'

控制臺(tái)log

問題原因:定位到原因是[UIImage imageNamed:]傳入的參數(shù)為nil少孝。但是有一個(gè)問題,怎么定位到時(shí)哪個(gè)文件的哪些[UIImage imageNamed:]方法傳入的參數(shù)是nil熬苍。有一個(gè)Symbolic Breakpoint斷點(diǎn)調(diào)試的方法稍走,可以讓我們?cè)诮鉀Q這類問題時(shí)事半功倍。

斷點(diǎn)調(diào)試

1柴底、點(diǎn)擊左下角+選擇Symbolic Breakpoint...
2婿脸、右鍵斷點(diǎn)選擇Edit Breakpoint...
3、在Symbolic選項(xiàng)中輸入要調(diào)試的目標(biāo)方法柄驻,比如[UIImage imageNamed:]
4狐树、在Condition選項(xiàng)輸入觸發(fā)目標(biāo)方法斷點(diǎn)的條件,比如$arg3 == nil
運(yùn)行程序鸿脓,如果當(dāng)前界面有調(diào)用目標(biāo)方法抑钟,并且條件滿足,就會(huì)進(jìn)入這個(gè)方法的斷點(diǎn)模式野哭,進(jìn)入Xcode的Debug Navigator選項(xiàng)在塔,查看調(diào)用堆棧,棧頂?shù)姆椒ň褪浅霈F(xiàn)問題的代碼拨黔,直接點(diǎn)擊查看即可蛔溃。

再說一下第4步的$arg3,它代表目標(biāo)方法的第一個(gè)參數(shù)變量。比如有一個(gè)方法- (void)methodSection1:(id)section1 section2:(id)section2 section3:(id)section3{}城榛,我要調(diào)試這個(gè)方法的話揪利,目標(biāo)方法就是methodSection1:section2:section3:$arg+“數(shù)字”代表的含義是:

  • $arg0 代表self
  • $arg1 代表方法名狠持,_cmd
  • $arg3 代表參數(shù)變量section1
  • $arg4 代表參數(shù)變量section2
  • $arg5 代表參數(shù)變量section3

更多斷點(diǎn)調(diào)試使用參考

解決方案:給出現(xiàn)問題的方法加上邏輯判斷疟位,避免傳入nil。


4喘垂、gerrit用ssh拉取代碼報(bào)出問題

Unable to negotiate with 10.216.90.129 port 29418: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

問題原因:并不僅僅出現(xiàn)Mac OS系統(tǒng)甜刻,在最新的OpenSSH版本(7.0及更高版本)中,一些老舊的加密算法已經(jīng)默認(rèn)不可用了正勒。當(dāng)客戶端使用SSH連接到服務(wù)器時(shí)得院,如果老舊算法不可用,客戶端和服務(wù)器無法就密鑰交換算法達(dá)成一致而導(dǎo)致連接失敗章贞,報(bào)出上面的錯(cuò)誤提示祥绞。目前服務(wù)器只提供了一種方法:diffie-hellman-group1-sha1。OpenSSH支持此方法鸭限,但是默認(rèn)沒有啟用蜕径,我們要做的就是去啟用它。KexAlgorithms用于生成每個(gè)連接密鑰的密鑰交換方法败京,host下加入KexAlgorithms=+diffie-hellman-group1-sha1兜喻,含義就是使用KexAlgorithms啟用diffie-hellman-group1-sha1密鑰交換算法。

解決方案:

  1. 修改ssh config文件 sudo vim /etc/ssh/ssh_config
  2. 在host下加入 KexAlgorithms=+diffie-hellman-group1-sha1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末赡麦,一起剝皮案震驚了整個(gè)濱河市朴皆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泛粹,老刑警劉巖遂铡,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異晶姊,居然都是意外死亡忧便,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門帽借,熙熙樓的掌柜王于貴愁眉苦臉地迎上來珠增,“玉大人,你說我怎么就攤上這事砍艾〉俳蹋” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵脆荷,是天一觀的道長凝垛。 經(jīng)常有香客問我懊悯,道長,這世上最難降的妖魔是什么梦皮? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任炭分,我火速辦了婚禮,結(jié)果婚禮上剑肯,老公的妹妹穿的比我還像新娘捧毛。我一直安慰自己,他們只是感情好让网,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布呀忧。 她就那樣靜靜地躺著,像睡著了一般溃睹。 火紅的嫁衣襯著肌膚如雪而账。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天因篇,我揣著相機(jī)與錄音泞辐,去河邊找鬼。 笑死竞滓,一個(gè)胖子當(dāng)著我的面吹牛咐吼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播虽界,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼汽烦,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼涛菠!你這毒婦竟也來了莉御?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤俗冻,失蹤者是張志新(化名)和其女友劉穎礁叔,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迄薄,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡琅关,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了讥蔽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涣易。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖冶伞,靈堂內(nèi)的尸體忽然破棺而出新症,到底是詐尸還是另有隱情,我是刑警寧澤响禽,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布徒爹,位于F島的核電站荚醒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏隆嗅。R本人自食惡果不足惜界阁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胖喳。 院中可真熱鬧泡躯,春花似錦、人聲如沸禀晓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粹懒。三九已至重付,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凫乖,已是汗流浹背确垫。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帽芽,地道東北人删掀。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像导街,于是被迫代替她去往敵國和親披泪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容