[問題] Framework 是什麼?

看板MacDev作者 (吹笛牧童)時間10年前 (2014/02/13 22:51), 編輯推噓0(007)
留言7則, 1人參與, 最新討論串1/2 (看更多)
因為需繪圖的關係,所以先 survey 這部份的程式 按照書上所示,要引入 QuartzCore.framework 照著引入是可以 build 過沒錯 但根本不引入照樣 build 過了 所以它有什麼必要? --- 剛才查詢畫線指令 (XXXXXdrawpath) 發現它的 head file 位在 CoreGraphics 裏 所以是我的書太舊了嗎? 又改版了? 書名是 iOS7 程式設計實戰 171 個快速上手的開發技巧 (有沒有更新的書 *_*) 封面寫 使用最新 iOS7+Xcode5 進行App開發 Xcode5 耶,很新了 --- 若從 VC 的經驗來說 .c .cpp compile 成 .obj .obj 可以再 link(?) 成 .lib 或 .exe (看有沒有 main,有沒有缺少 link symbol) 於是我可以用 .lib 來理解 framework 若放大絕來說,這就單純只是不同公司出產不同產品,副檔名不同而已,是嗎? --- 書真的太舊了,照 sample 才打好,就一堆 deprecated 的指令 Orz -- 活動/美食計劃 蘭嶼 魚白 勝興車站 星月天空 武陵 草嶺古道 嘉義阿里山小火車 保齡球  司馬庫斯 手包水餃 日月潭纜車 合歡攻頂 馬祖 鹽山 南庄 澎湖 溪頭/松林町 南投天梯 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.197.63

02/13 23:23, , 1F
不用include的理由 http://goo.gl/7rOYqz
02/13 23:23, 1F

02/13 23:25, , 2F
我覺得如果是iOS內建的framework,比較像是c的動態library的
02/13 23:25, 2F

02/13 23:26, , 3F
header而已,因為他不會真的把那些framework包進你的app
02/13 23:26, 3F

02/13 23:26, , 4F
而只是解決compile error而已
02/13 23:26, 4F
linker 本來就要想法子減少 code size 以前我曾想過,如果我寫了一千個函式(比如字串啊,繪圖啊等等) 然後主程式就一個 main() 結束退出 那程式要多大? 組合語言的話大概笑了,幾個 byte,剩下的就是給 os 載入的檔案格式 overhead 而已 C 的話,至少要連結啟動模組 那一千個函式呢? 喔..沒呼叫到當然不打包啊 問題來了,它以什麼做邊界取捨? 如果分在4個檔案裏,每個檔案 250 個指令 然後我用了一個 printf 來印 hello world 呢? 也許這不在 C 的標準裏,而是各家 compiler 的最佳化能力高下了 微軟的 Microsoft C (我以前用過,不是 VC 喔) 它的參數有夠多的 和 Borland 出的 TC or BCB 跑起來感覺不同 一個是 link 超快,一個是 link 久一些,但程式較小 我想, 只 link 一個 function 或許也做得到 不過在 VC++,那會以 class 為單位 link 在 VC, 會以 obj (而一個 obj 來自一個 .c) 為單位 link (好像是這樣) DLL 的話, DLL 地位很像 EXE,它所有用到的指令都要打包,不能有沒連結到的 symbol 因為它不知道別人會呼叫它哪一個公開函式(export function),所以不能捨去 只用 DLL 內的一道指令,整個 DLL 還是載入了;反正它比較像常駐程式 因此如果說沒呼叫到就不打包 那我會以為 framework 比較像 .lib (.lib 是 .obj 的聚合,沒用到的不會被打包)

02/13 23:26, , 5F
include quartz可能就有點像include stdio.h這樣
02/13 23:26, 5F

02/13 23:28, , 6F
我覺得你那本書可能是從iOS5改版到現在...ㄎㄎ
02/13 23:28, 6F

02/13 23:29, , 7F
很多函式都從6開始deprecated
02/13 23:29, 7F
其實最新的都在網路上 會想要有書,是因為書有中文啊 T^T 我現在在 K 網路, server, TCP/IP 這部份幫到我的是26的網站,要看一堆簡體字.. ※ 編輯: HuangJC 來自: 60.251.197.63 (02/13 23:59)
文章代碼(AID): #1I_Dm66w (MacDev)
文章代碼(AID): #1I_Dm66w (MacDev)