10个迷惑新手的CocoaObjective-c开发问题.pdfVIP

10个迷惑新手的CocoaObjective-c开发问题.pdf

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
10个迷惑新手的Cocoa

本文由长春白癜风专科医院/ 收集,转载请注明出处 10 个迷惑新手的CocoaObjective-c 开发问题 1. language background 2. runtime 3. thread 4. runloop 5. delegate, protocol 6. event responder 7. memory management 8. class heritage and category 9. design pattern 10. drawing issue 首先请谅解我可能使用很多英文,毕竟英文资料将来会是你的主要资料来源。 这篇博客将描述一些我见到的众多Cocoa 开发新手遇到的问题和障碍。在你继续深入学习 MacOS 编程之前,请停下脚步弄清这些问题。如果你是新手,这个教程不要希望一次能看 的非常透彻,学一定阶段反回来再看看又会有新的体会的。 1. language background 首先c, c++语言背景,必须。很多人问:”没有任何语言基础,我不想学c 直接学objective-c 。 “ 这里我简单说几句,objc 是c 的超集,也就是说大部分objc 代码其实是c、而且众多开源 代码是c,c++写成的。你不学好c 在unix 世界里只能是个二流开发者!也许说得过于严厉, 不过自己斟酌把。 接着English,必须。 苹果不会把它们文档都写成中文的。“什么,有人翻译?” 等有人闲着 翻译出来了的时候,大家都已经卖了很多软件了。你也是跟着人家屁股后面做开发。 2. runtime (运行时) Objective-c 是动态语言, 很多新手或者开发人员常常被runtime 这个东西所迷惑。而恰恰 这是一个非常重要的概念。我可以这么问:“如果让你(设计、)实现一个计算机语言,你 本文由吉林白癜风医院/ 收集,转载请注明出处 本文由长春白癜风专科医院/ 收集,转载请注明出处 要如何下手?” 很少程序员这么思考过。但是这么一问,就会强迫你从更高层次思考1 以前 的问题了。 注意我这句话„设计‟括起来了,稍微次要点,关键是实现。 我把实现分成3 种不同的层次: 第一种是传统的面向过程的语言开发,例如c 语言。实现c 语言编译器很简单,只要按照语 法规则实现一个LALR 语法分析器就可以了,编译器优化是非常难的topic ,不在这里讨论 范围内,忽略。 这里我们实现了编译器其中最最基础和原始的目标之一就是把一份代码里 的函数名称,转化成一个相对内存地址,把调用这个函数的语句转换成一个jmp 跳转指令。 在程序开始运行时候,调用语句可以正确跳转到对应的函数地址。 这样很好,也很直白, 但是太死板了。Everything is predetermined. 我们希望语言更加灵活,于是有了第二种改进,开发面向对象的语言,例如c++ 。c++在c 的基础上增加了类的部分。但这到底意味着什么呢?我们再写它的编译器要如何考虑呢?其 实,就是让编译器多绕个弯,在严格的c 编译器上增加一层类处理的机制,把一个函数限制 在它处在的class 环境里,每次请求一个函数调用,先找到它的对象, 其类型,返回值,参数 等等,确定了这些后再jmp 跳转到需要的函数。这样很多程序增加了灵活性同样一个函数 调用会根据请求参数和类的环境返回完全不同的结果。增加类机制后,就模拟了现实世界的 抽象模式,不同的对象有不同的属性和方法。同样的方法,不同的类有不同的行为! 这里 大家就可以看到作为一个编译器开发者都做了哪些进一步的思考。虽然面相对象语言有所改 进,但还是死板, 我们仍然叫c++是static language. 希望更加灵活!于是我们完全把上面哪个类的实现部分抽象出来,做成一套完整运行阶段的 检测环境,形成第三种,动态语言。这次再写编译器甚至保留部分代码里的sytax 名称,名 称错误检测,runtime 环境注册所以全局的类,函数,变量等等信息等等,我们可以无限的 为这个层增加必要的功能。调用函数时候,会先从这个运行时环境里检测所以可能的参数再 做jmp 跳转。这,就是runtime 。编译器开发起来比上面更加弯弯

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档