当前位置是:汇盛国际 > 成功案例 > 成功案例

汇盛国际注册:iPhone基础概念:斯坦福教程第一

来源:959fjp.com 发布时间:2018-02-27 点击量:

  看斯坦福的iPhone视频有一段时间了,所以做点笔记提示自己,也能够和我们一块儿评论学习。

  第一讲主要内容是 ObjC基本语法,语法本来很简单,三天就能适应。可是ObjC有许多理念非常重要,需求花时间编程实习才干了解。尤其我又不是学 ComputerScience的,java彻底没看过,凭借仅有的C言语根底还是呈现了许多了解疑问。以下是我自己觉得非常重要或许是花了长期才弄明 白的概念。下载视频教程及课件网址:http://www.stanford.edu/class/cs193p/cgi-bin/index.php

  一、Inheritance:承继

  和C++不一样,Obj-C只要一个父类,而且只要一个超级父类NSObject(ObjC中一切的类都承继自NSObject)。

  问 题来了,假如我新建一个类person.h,但又期望它能承继多个类如appearance.h,behavior.h,thought.h的办法怎样 办?咱们能够这么,让person.h承继自appearance.h,而运用behavior.h,thought.h的delegat(托付)。当然 在behavior.h,[email?protected],[email?protected] [email?protected]h中的一切办法,也能够修正在 bahavior.h,[email?protected]在UITableViewController中非常常 见。

  二、Object Creation:目标创立(create=alloc+init)

  All objects are allocated out of the heap;No stack based objects. 说实在的,视频看到这儿的时分我懵了好长期,如今也没彻底搞明白,可能有一点点java根底会很简单,惋惜偶没有啊。

  按我自己的了解是这么的:C++通常选用stack-basedobject,所以用C++编程时,在一个函数中咱们能够直接对一个类进行实例化如 Person *aperson,然后就能够调用该目标的函数、公有成员变量,这是由于在履行Person *aperson这条代码时体系在仓库傍边给 aperson腾出了一个固定的空间,所以能够直接运用这个目标。可是相同的代码在objC中就不可,Person *aperson好像啥事情也没做,仅仅声明有aperson这么个实例目标,内存没有为它分配空间,所以啥办法都不能履行,咱们有必要选用 alloc+init才算真实创立aperson 实例目标,然后才干调用它的办法。

  三、Autorelease Pool:主动开释池

  autorelease pool是个好东西,许多人都知道它的长处在哪里,也有许多介绍它的文章。与autorelease这个办法联用几乎即是无敌!不过我想从另一个角度说这 个概念,它与上面讲的object creation有啥关系?(不明白java的人即是会想许多,呵呵)

  二中说到:objects are allocated out of heap,可是究竟一切的数据、目标终究都需求分配到内存空间然后才干被程序调用啊。留意:目标内存分配尽管不在heap或许stack傍边,但当目标被 创立好了今后会被主动的放入autorelease pool中,而autorelease pool,以我浅陋的汇盛国际常识了解,本来即是一个heap(不知道说得对不对,请我们纠正)。

  别的想更多了解heap-based object和stack-based object,能够到该网址看看:http://blog.chinaunix.net/u/18418/showart_307250.html。 该文大概意思是这么的,heap和stack都是在内存中拓荒一块儿区域给目标运用,不一样的是假如用stack保存数据,那么compiler有必要知道数 据长度,由于它分配的空间是固定长度的,而heap相当于一个池,能够把数据、目标一股脑都放进去,而不需求知道其具体长度,所认为操作供给灵活性。



小编:新条 http://www.959fjp.com 整理文章,欢迎大家转载!



上一篇:汇盛国际:让网狐房间人数显示为空闲良好技巧

下一篇:汇盛国际平台:傲翼网络科技:多平台战略不断



版权所有 汇盛国际 2017~2018 禁止镜像

网站地图 | RSS订阅 |