警告錯(cuò)誤整理(2)

一.? 如果import用了C++的東西的苔货,要把自己的.m文件改成.mm文件



二.嘗試iOS device時(shí)鏈接期提示警告信息:

ld: warning: PIE disabled. Absolute addressing (perhaps -mdynamic-no-pic) not allowed in code signed PIE, but used in _FT_Stream_Open from /Users/kres/Downloads/freetype-2.4.9/libfreetype.a(ftsystem.o). To fix this warning, don’t compile with -mdynamic-no-pic or link with -Wl,-no_pie

查了一下,所謂的PIE是指position independent executable,即地址無(wú)關(guān)exe爬早,換句話說(shuō)也就是生成的機(jī)器碼中不能出現(xiàn)lea rax, some_symbol_name這樣的絕對(duì)尋址柑蛇,而只能以:lea rax, [rel some_symbol_name]這種形式出現(xiàn),目的是為了提高安全性,這樣OS可以以隨機(jī)的地址加載exe荷逞。去掉CFLAGS中的-mdynamic-no-pic后重新編譯鏈接armv6 armv7兩個(gè)版本的free type代碼,警告去除粹排,不知是否會(huì)有副作用种远,繼續(xù)體驗(yàn)…

這種警告解決的辦法:targets-->build Settings-->Linking-->Don't create Position Independent Executables

設(shè)置為YES.警告自然消除。

三.Applications using Launch Screen Files and targetting iOS 7.1 and earlier need to also include a Launch Image in an Asset Catalog.

I ran into the exact same problem this morning. Here's how I fixed it.

Select your project in the project navigator. Under the General tab, you should see the section for App Icons and Launch Images. Where you see Launch Images Source, click 'Use Asset Catalog'.

You will then see Migrate launch images to an asset catalog dialogue. Click 'Migrate'.

Make sure that your Launch Images Source on the previous screen points to the right image set in your asset catalog. In your case, you would set it to 'Default'.

四.-ObjC

最近在做一個(gè)項(xiàng)目的時(shí)候顽耳,需要使用到一個(gè)第三方庫(kù)坠敷,這個(gè)庫(kù)的使用向?qū)Ю锩嫣貏e說(shuō)明,在添加完該庫(kù)后斧抱,需要在Xcode的Build Settings下Other Linker Flags里面加入-ObjC標(biāo)志常拓,這個(gè)標(biāo)志以前沒(méi)使用過(guò),所以我就專門研究了一下它的作用辉浦。

之所以使用該標(biāo)志,和Objective-C的一個(gè)重要特性:類別(category)有關(guān)茎辐。根據(jù)這里的解釋宪郊,Unix的標(biāo)準(zhǔn)靜態(tài)庫(kù)實(shí)現(xiàn)和Objective-C的動(dòng)態(tài)特性之間有一些沖突:Objective-C沒(méi)有為每個(gè)函數(shù)(或者方法)定義鏈接符號(hào),它只為每個(gè)類創(chuàng)建鏈接符號(hào)拖陆。這樣當(dāng)在一個(gè)靜態(tài)庫(kù)中使用類別來(lái)擴(kuò)展已有類的時(shí)候弛槐,鏈接器不知道如何把類原有的方法和類別中的方法整合起來(lái),就會(huì)導(dǎo)致你調(diào)用類別中的方法時(shí)依啰,出現(xiàn)"selector not recognized"乎串,也就是找不到方法定義的錯(cuò)誤。為了解決這個(gè)問(wèn)題速警,引入了-ObjC標(biāo)志叹誉,它的作用就是將靜態(tài)庫(kù)中所有的和對(duì)象相關(guān)的文件都加載進(jìn)來(lái)。

本來(lái)這樣就可以解決問(wèn)題了闷旧,不過(guò)在64位的Mac系統(tǒng)或者iOS系統(tǒng)下长豁,鏈接器有一個(gè)bug,會(huì)導(dǎo)致只包含有類別的靜態(tài)庫(kù)無(wú)法使用-ObjC標(biāo)志來(lái)加載文件忙灼。變通方法是使用-all_load 或者-force_load標(biāo)志匠襟,它們的作用都是加載靜態(tài)庫(kù)中所有文件,不過(guò)all_load作用于所有的庫(kù)该园,而-force_load后面必須要指定具體的文件酸舍。

明白了這些, 就清楚里初,這個(gè)第三方庫(kù)中一定是定義了一些類別來(lái)擴(kuò)著已有類啃勉,打開(kāi)頭文件,發(fā)現(xiàn)果然如此青瀑。

一些第三方庫(kù)里對(duì)系統(tǒng)庫(kù)的類加了 category 璧亮,

這時(shí)萧诫,就需要使用編譯參數(shù): -ObjC ,這樣第三方庫(kù)中對(duì)系統(tǒng)類作的擴(kuò)展方法才能在工程中使用枝嘶。

但是使用 -Objc 后帘饶,會(huì)產(chǎn)生兩個(gè)問(wèn)題:

1 、 undefined symbols

2 群扶、 duplicate symbol

undefined symbols 說(shuō)明工程中沒(méi)有引入第三方庫(kù)引用的庫(kù)及刻。

如果不加 -ObjC 參數(shù),則在編譯時(shí)不會(huì)出錯(cuò)竞阐,但運(yùn)行時(shí)用到了沒(méi)引用庫(kù)的方法缴饭,則系統(tǒng)會(huì)崩潰。

這個(gè)問(wèn)題好解決骆莹。只要找到缺的庫(kù)颗搂,引入工程就可以了。

duplicate symbol 的問(wèn)題就不好解決了幕垦,說(shuō)明第三方庫(kù)中的類名和工程中的類名丢氢,或其它第三方庫(kù)中的類名重名了。

最常見(jiàn)的比如 Reachability 這個(gè)類先改,如果第三方庫(kù)中引用了疚察,自己的工程中也引用了,就會(huì)報(bào) duplicate symbol 仇奶。

如果引用的第三方庫(kù)沒(méi)有源代碼貌嫡,就只能將自己工程中的重名類重命名了。

應(yīng)對(duì)上面的問(wèn)題该溯,如果自己要制作一個(gè)庫(kù)的話岛抄,要注意兩點(diǎn):

1 、避免對(duì)系統(tǒng)類加 category, 這樣朗伶,別人用你的庫(kù)時(shí)弦撩,不加 ObjC 參數(shù)也可以用你的庫(kù)。

2 论皆、如果庫(kù)中用到了其它的第三方的源代碼益楼,尤其是用的比較普遍的,如 Reachability, 一定一定要對(duì)

這些類重命名点晴,最常見(jiàn)的作法就是給類名加個(gè)前綴感凤。以避免別人用你的庫(kù)時(shí),產(chǎn)生 duplicate symbol 的問(wèn)題粒督。


五.關(guān)于問(wèn)題ld:library not found for -lXXX 和ld:warning:directory not found option 以及duplicate symbol的解決辦法

ld:library not found for -lXXX 的問(wèn)題有可能是你的某個(gè)庫(kù)的連接引用有問(wèn)題,解決的辦法就是在項(xiàng)目的target里,選中Link Binary With Libraries 里的.a或framework 取消再加入,就可以了

六.No known instance method for selector 'respondsToSelector:'

協(xié)議里找不到這個(gè)方法?

這個(gè)是沒(méi)有繼承基協(xié)議造成的 繼承下<NSObject>

七.今天放在button上的圖片 放什么都變成藍(lán)色 郁悶了一個(gè)小時(shí)才發(fā)現(xiàn)

buttonWithType:UIButtonTypeCustom 寫成了buttonWithType:UIButtonTypeSystem

WTF!

在button中犯的錯(cuò) 還有一個(gè)就是 我重寫了一個(gè)button類 替換的 時(shí)候 沒(méi)有替換alloc里面的UIButton

八.xcode中 有時(shí)候會(huì)報(bào)一個(gè)警告:

[WARN]Warning: Multiple build commands for output file /xxx

要解決這個(gè)問(wèn)題很簡(jiǎn)單:

1.選擇你的工程

2.選擇target

3.點(diǎn)擊 Build Phases

4.展開(kāi)Copy Bundle Resources

5.刪除里面的剛才提示警告的文件,一般為紅色的名字的文件

九.關(guān)于屏幕旋轉(zhuǎn)

我每次轉(zhuǎn)動(dòng)屏幕的時(shí)候 ?就老是電池條跑啊跑的 把這個(gè)刪了 整個(gè)世界就清凈了

按我的理解 這個(gè)東西 用SB寫界面的可以留著 ? 用代碼寫的就刪了吧

十.Duplicate declaration of method 'XXXXXXX:'

duplicate ['dju:plik?t, 'dju:plikeit]n. 副本陪竿;復(fù)制品

declaration [dekl?'re??(?)n]n. (納稅品等的)申報(bào);宣布;公告族跛;申訴書

方法重復(fù)申明了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末闰挡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子礁哄,更是在濱河造成了極大的恐慌长酗,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桐绒,死亡現(xiàn)場(chǎng)離奇詭異夺脾,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)茉继,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門咧叭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人烁竭,你說(shuō)我怎么就攤上這事菲茬。” “怎么了颖变?”我有些...
    開(kāi)封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵生均,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我腥刹,道長(zhǎng),這世上最難降的妖魔是什么汉买? 我笑而不...
    開(kāi)封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任衔峰,我火速辦了婚禮,結(jié)果婚禮上蛙粘,老公的妹妹穿的比我還像新娘垫卤。我一直安慰自己,他們只是感情好出牧,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布穴肘。 她就那樣靜靜地躺著,像睡著了一般舔痕。 火紅的嫁衣襯著肌膚如雪评抚。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天伯复,我揣著相機(jī)與錄音慨代,去河邊找鬼。 笑死啸如,一個(gè)胖子當(dāng)著我的面吹牛侍匙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播叮雳,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼想暗,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼妇汗!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起说莫,我...
    開(kāi)封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤杨箭,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后唬滑,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體告唆,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年晶密,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了擒悬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡稻艰,死狀恐怖懂牧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情尊勿,我是刑警寧澤僧凤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站元扔,受9級(jí)特大地震影響躯保,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜澎语,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一途事、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧擅羞,春花似錦尸变、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至娃承,卻和暖如春奏夫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背草慧。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工桶蛔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人漫谷。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓仔雷,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子碟婆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)电抚、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,059評(píng)論 4 62
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,747評(píng)論 25 707
  • 《往日故去》 1翻開(kāi)發(fā)黃舊相冊(cè) 段段往昔輾轉(zhuǎn)反側(cè) 已想起了曾經(jīng)記憶腦熱 明知道不能回去了 2舊日苦惱無(wú)法琢磨 本該...
    向昕閱讀 196評(píng)論 1 4
  • 接二連三的失敗 消磨了我的浮躁 開(kāi)始補(bǔ)足我成長(zhǎng)留下的疤痕和漏洞 失敗 卻不應(yīng)該 消磨我的銳氣 我深信 失敗多了之后...
    凱爾特的矛閱讀 411評(píng)論 0 2
  • 后來(lái)我想清楚了借帘,25歲變化的只是我們的年齡,我們要想辦法活出自己淌铐,讓自己變得越來(lái)越美肺然,生活過(guò)得越來(lái)越有質(zhì)...
    心陽(yáng)暖笑閱讀 532評(píng)論 0 2