iOS開發(fā)的坑

搜得到的宦搬,方便處理的沈自,就不說了邻奠。只是記錄總結(jié)笤喳。

1.contentOffset莫名改變

表現(xiàn):頁面push、pop后莫名高出20或低20碌宴。

解決方法:viewController.automaticallyAdjustsScrollViewInsets = NO;

問題非常不好定位杀狡,需要排查確定是contentOffset改變而不是y、height等屬性唧喉。


2.該證書的簽發(fā)者無效

下載:https://developer.apple.com/certificationauthority/AppleWWDRCA.cer


3.JPush目標(biāo)0成功0

web端推送時(shí)應(yīng)用設(shè)置的推送環(huán)境是生產(chǎn),plist的APS_FOR_PRODUCTION也設(shè)置的1忍抽,設(shè)備上的app是從appStore上下的八孝,然后推送的MessageID讓極光技術(shù)查了之后發(fā)現(xiàn),設(shè)備還在開發(fā)環(huán)境鸠项!

查了之后發(fā)現(xiàn)是用了一個(gè)已失效的生產(chǎn)證書……盡管極光驗(yàn)證通過干跛,但它是失效的。


4.class_copyPropertyList內(nèi)存泄漏

用profile的leaks工具查了一下項(xiàng)目的內(nèi)存祟绊,泄漏不少……大部分是一個(gè)解析數(shù)據(jù)的工具方法的一行出了錯(cuò):

objc_property_t *popertylist = class_copyPropertyList(clazz, &count);

遂看class_copyPropertyList的說明:

An array of pointers of type objc_property_t describing the properties declared by the class. Any properties declared by superclasses are not included. The array contains *outCount pointers followed by a NULL terminator. You must free the array with free().


5.蜜汁bug小記

現(xiàn)象:

A viewController ,點(diǎn)按鈕buttonA跳轉(zhuǎn)到 B viewController楼入,點(diǎn)按鈕buttonB跳轉(zhuǎn)到C viewController哥捕,都是navigationController的push和pop跳轉(zhuǎn)的。

A第一次加載嘉熊,沒問題遥赚;點(diǎn)buttonA跳轉(zhuǎn),沒問題阐肤,B也正常凫佛;返回A,沒問題孕惜。

點(diǎn)buttonB跳轉(zhuǎn)愧薛,沒問題,刪光C中tableView的數(shù)據(jù)衫画,ABC的數(shù)據(jù)是聯(lián)動(dòng)的毫炉,返回A,沒問題削罩;點(diǎn)buttonA跳轉(zhuǎn)到B瞄勾,問題來了。

加了全局exception之后鲸郊,崩潰在A的cellForRowAtIndexPath的方法上丰榴。

這不是逗我嘛?

加了各種NSLog之后秆撮,發(fā)現(xiàn)崩潰的時(shí)機(jī)非常詭異四濒,是在A執(zhí)行完viewWillDisappear,B執(zhí)行完viewWillAppear职辨,A還沒有執(zhí)行到viewDidDisappear的時(shí)候盗蟆。

根據(jù)輸出可以發(fā)現(xiàn),此時(shí)舒裤,B中的numberOfSections和numberOfRowsInSection執(zhí)行了三遍喳资,然后!執(zhí)行了A的cellForRow和heightForRow……

為何腾供?仆邓??

百思不得其解伴鳖!最后只有在崩潰的地方节值,也就是

cell.itemData = [self.dataList objectAtIndex:indexPath.row];之前加了判斷,如果dataList為空榜聂,或者indexPath不認(rèn)識(shí)row這個(gè)方法搞疗,那么直接返回cell,不再把數(shù)據(jù)賦過去须肆。

果然不再崩潰……然而我依然不懂匿乃,為何會(huì)執(zhí)行A的這兩個(gè)方法桩皿?為何tableView的代理方法里indexPath會(huì)不認(rèn)識(shí)row?幢炸?泄隔?


6.制作framework的坑

6.1報(bào)錯(cuò)說xib或者image或者xml找不到:

6.1.1在framework工程中,把所有添加圖片阳懂、xib的例如imageWithNamed:"back"的地方梅尤,給圖片名、xib名加上前綴岩调,變成這樣:imageWithNamed:"Frameworks/myFramework.framework/back"

6.1.2在測(cè)試framework的工程中巷燥,選擇Build Phases,點(diǎn)左上角的加號(hào)号枕,選New Copy Files Phase缰揪。在這個(gè)新出現(xiàn)的Copy Files (0 items)中,第一項(xiàng)Destination選Frameworks葱淳,然后點(diǎn)“Add files here”下面的加號(hào)钝腺,找到自己的framework,點(diǎn)Add赞厕。

6.2如果你先測(cè)了模擬器版本的framework艳狐,想在真機(jī)上測(cè)試一下。需要這樣做:

6.2.1刪去先前導(dǎo)入的模擬器版本framework皿桑,Build Settings里搜“search”毫目,找到Framework Search Path,看看是否還殘留有模擬器版本的framework的路徑诲侮,如果有镀虐,刪掉。

6.2.2導(dǎo)入真機(jī)版本的framework沟绪,并檢查Framework Search Path是不是真機(jī)版本的路徑刮便,如果不是,改绽慈。

6.2.3如果不按這個(gè)順序來會(huì)怎么樣呢恨旱?會(huì)完全找不到庫,報(bào)dyld: Library not loaded的錯(cuò)坝疼。如果你按網(wǎng)上搜到的大部分的方法搜贤,把framework改成optional的,當(dāng)然裙士,程序不會(huì)崩潰入客,但是你的framework依然不生效管毙,因?yàn)樗€是找不到腿椎。只有保證你導(dǎo)入的是真機(jī)版本桌硫,查找路徑也是真機(jī)版本,它才能被找到啃炸,才能真正運(yùn)行起來铆隘。

6.3如果你把你的測(cè)試項(xiàng)目發(fā)給其他同事、朋友讓他們幫你看問題南用,請(qǐng)讓他們新建一個(gè)項(xiàng)目膀钠,把你的測(cè)試代碼拷進(jìn)去,把你的庫拖進(jìn)去裹虫,不然還是找不到肿嘲。


7.更新帶來的各種

7.1 code signing entitlements 這個(gè)字段在Xcode7.2、7.3打包時(shí)必須為空筑公,Xcode8則不需要雳窟。不然打包導(dǎo)出的時(shí)候會(huì)報(bào)錯(cuò)。報(bào)的錯(cuò)去搜有很多解決方法(ios - An App ID with Identifier '' is not available. Please enter a different string - Stack Overflow)匣屡,然而……實(shí)際問題各不相同封救。

7.2 用Xcode7.2打包,OS X 10.12捣作,這個(gè)包無論是通過Xcode自帶的還是下載的Application Loader上傳時(shí)都會(huì)失敗誉结。解決方法是,打出來之后發(fā)送給一臺(tái)OS X 10.11的電腦券躁,用它上傳惩坑,才沒問題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嘱朽,一起剝皮案震驚了整個(gè)濱河市旭贬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌搪泳,老刑警劉巖稀轨,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異岸军,居然都是意外死亡奋刽,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門艰赞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來佣谐,“玉大人,你說我怎么就攤上這事方妖∠粱辏” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長雌澄。 經(jīng)常有香客問我斋泄,道長,這世上最難降的妖魔是什么镐牺? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任炫掐,我火速辦了婚禮,結(jié)果婚禮上睬涧,老公的妹妹穿的比我還像新娘募胃。我一直安慰自己,他們只是感情好畦浓,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布痹束。 她就那樣靜靜地躺著,像睡著了一般讶请。 火紅的嫁衣襯著肌膚如雪参袱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天秽梅,我揣著相機(jī)與錄音抹蚀,去河邊找鬼。 笑死企垦,一個(gè)胖子當(dāng)著我的面吹牛环壤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播钞诡,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼郑现,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了荧降?” 一聲冷哼從身側(cè)響起接箫,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎朵诫,沒想到半個(gè)月后辛友,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡剪返,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年废累,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脱盲。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡邑滨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出钱反,到底是詐尸還是另有隱情掖看,我是刑警寧澤匣距,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站哎壳,受9級(jí)特大地震影響墨礁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜耳峦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望焕毫。 院中可真熱鬧蹲坷,春花似錦、人聲如沸邑飒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疙咸。三九已至县匠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間撒轮,已是汗流浹背乞旦。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留题山,地道東北人兰粉。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像顶瞳,于是被迫代替她去往敵國和親玖姑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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