作者HuangJC (吹笛牧童)
看板MacDev
标题[问题] Framework 是什麽?
时间Thu Feb 13 22:51:47 2014
因为需绘图的关系,所以先 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
2F:→ benck:我觉得如果是iOS内建的framework,比较像是c的动态library的 02/13 23:25
3F:→ benck:header而已,因为他不会真的把那些framework包进你的app 02/13 23:26
4F:→ benck:而只是解决compile error而已 02/13 23:26
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 的聚合,没用到的不会被打包)
5F:→ benck:include quartz可能就有点像include stdio.h这样 02/13 23:26
6F:→ benck:我觉得你那本书可能是从iOS5改版到现在...ㄎㄎ 02/13 23:28
7F:→ benck:很多函式都从6开始deprecated 02/13 23:29
其实最新的都在网路上
会想要有书,是因为书有中文啊 T^T
我现在在 K 网路, server, TCP/IP
这部份帮到我的是26的网站,要看一堆简体字..
※ 编辑: HuangJC 来自: 60.251.197.63 (02/13 23:59)