警告錯誤整理(2)

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



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

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,即地址無關exe,換句話說也就是生成的機器碼中不能出現lea rax, some_symbol_name這樣的絕對尋址,而只能以:lea rax, [rel some_symbol_name]這種形式出現,目的是為了提高安全性,這樣OS可以以隨機的地址加載exe。去掉CFLAGS中的-mdynamic-no-pic后重新編譯鏈接armv6 armv7兩個版本的free type代碼,警告去除,不知是否會有副作用,繼續體驗…

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

設置為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

最近在做一個項目的時候,需要使用到一個第三方庫,這個庫的使用向導里面特別說明,在添加完該庫后,需要在Xcode的Build Settings下Other Linker Flags里面加入-ObjC標志,這個標志以前沒使用過,所以我就專門研究了一下它的作用。

之所以使用該標志,和Objective-C的一個重要特性:類別(category)有關。根據這里的解釋,Unix的標準靜態庫實現和Objective-C的動態特性之間有一些沖突:Objective-C沒有為每個函數(或者方法)定義鏈接符號,它只為每個類創建鏈接符號。這樣當在一個靜態庫中使用類別來擴展已有類的時候,鏈接器不知道如何把類原有的方法和類別中的方法整合起來,就會導致你調用類別中的方法時,出現"selector not recognized",也就是找不到方法定義的錯誤。為了解決這個問題,引入了-ObjC標志,它的作用就是將靜態庫中所有的和對象相關的文件都加載進來。

本來這樣就可以解決問題了,不過在64位的Mac系統或者iOS系統下,鏈接器有一個bug,會導致只包含有類別的靜態庫無法使用-ObjC標志來加載文件。變通方法是使用-all_load 或者-force_load標志,它們的作用都是加載靜態庫中所有文件,不過all_load作用于所有的庫,而-force_load后面必須要指定具體的文件。

明白了這些, 就清楚,這個第三方庫中一定是定義了一些類別來擴著已有類,打開頭文件,發現果然如此。

一些第三方庫里對系統庫的類加了 category ,

這時,就需要使用編譯參數: -ObjC ,這樣第三方庫中對系統類作的擴展方法才能在工程中使用。

但是使用 -Objc 后,會產生兩個問題:

1 、 undefined symbols

2 、 duplicate symbol

undefined symbols 說明工程中沒有引入第三方庫引用的庫。

如果不加 -ObjC 參數,則在編譯時不會出錯,但運行時用到了沒引用庫的方法,則系統會崩潰。

這個問題好解決。只要找到缺的庫,引入工程就可以了。

duplicate symbol 的問題就不好解決了,說明第三方庫中的類名和工程中的類名,或其它第三方庫中的類名重名了。

最常見的比如 Reachability 這個類,如果第三方庫中引用了,自己的工程中也引用了,就會報 duplicate symbol 。

如果引用的第三方庫沒有源代碼,就只能將自己工程中的重名類重命名了。

應對上面的問題,如果自己要制作一個庫的話,要注意兩點:

1 、避免對系統類加 category, 這樣,別人用你的庫時,不加 ObjC 參數也可以用你的庫。

2 、如果庫中用到了其它的第三方的源代碼,尤其是用的比較普遍的,如 Reachability, 一定一定要對

這些類重命名,最常見的作法就是給類名加個前綴。以避免別人用你的庫時,產生 duplicate symbol 的問題。


五.關于問題ld:library not found for -lXXX 和ld:warning:directory not found option 以及duplicate symbol的解決辦法

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

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

協議里找不到這個方法?

這個是沒有繼承基協議造成的 繼承下<NSObject>

七.今天放在button上的圖片 放什么都變成藍色 郁悶了一個小時才發現

buttonWithType:UIButtonTypeCustom 寫成了buttonWithType:UIButtonTypeSystem

WTF!

在button中犯的錯 還有一個就是 我重寫了一個button類 替換的 時候 沒有替換alloc里面的UIButton

八.xcode中 有時候會報一個警告:

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

要解決這個問題很簡單:

1.選擇你的工程

2.選擇target

3.點擊 Build Phases

4.展開Copy Bundle Resources

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

九.關于屏幕旋轉

我每次轉動屏幕的時候 ?就老是電池條跑啊跑的 把這個刪了 整個世界就清凈了

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

十.Duplicate declaration of method 'XXXXXXX:'

duplicate ['dju:plik?t, 'dju:plikeit]n. 副本;復制品

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

方法重復申明了

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,516評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,484評論 2 379

推薦閱讀更多精彩內容

  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,172評論 4 61
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,730評論 25 708
  • 《往日故去》 1翻開發黃舊相冊 段段往昔輾轉反側 已想起了曾經記憶腦熱 明知道不能回去了 2舊日苦惱無法琢磨 本該...
    向昕閱讀 207評論 1 4
  • 接二連三的失敗 消磨了我的浮躁 開始補足我成長留下的疤痕和漏洞 失敗 卻不應該 消磨我的銳氣 我深信 失敗多了之后...
    凱爾特的矛閱讀 430評論 0 2
  • 后來我想清楚了,25歲變化的只是我們的年齡,我們要想辦法活出自己,讓自己變得越來越美,生活過得越來越有質...
    心陽暖笑閱讀 549評論 0 2