从iOS6以后,引入了一些非常简洁的语法,例如 (1)@[objects, ...] //@[] 初始化不可变数组 (2)@{key:object, ...} //@{}初始化不可变字典 (3)@(object) //@()初始化不可变对象 ...
分类:
其他好文 时间:
2016-06-16 19:44:10
阅读次数:
118
观察者模式的应用场景: 1、 对一个对象状态的更新,需要其他对象同步更新,而且其他对象的数量动态可变。 2、 对象仅需要将自己的更新通知给其他对象而不需要知道其他对象的细节。 举个例子说明,这个例子讲述一个老大吩咐小弟做事的故事,只要老大一声令下小弟就开始工作,小弟成员可增减.根据模式定义,使用两个 ...
分类:
编程语言 时间:
2016-06-13 13:40:22
阅读次数:
210
浅复制:只复制指向对象的指针,而不复制引用对象本身。计数器+1 ,就像比如retain 深层复制:复制引用对象本身。计数器不变,产生新对象 retain:始终是浅复制。引用计数每次加一。返回对象是否可变与被复制的对象保持一致。 copy:对于可变对象为深复制,引用计数不改变;对于不可变对象是浅复制, ...
分类:
其他好文 时间:
2016-06-13 08:49:04
阅读次数:
265
什么是不可变对象? 众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括 基本数据类型的值不能改变,引用类型的变量不能指向 ...
分类:
编程语言 时间:
2016-06-06 11:49:57
阅读次数:
251
对于对象引用问题,一直是一知半解的状态,现整理以备使用。 操作不可变对象进行加减运算时,会在内存中创建新的不可变实例,不会影响原来的引用>>> c=12>>> d=c>>> c+=1>>> c13>>> d12>>> >>> a="345a">>> b=a>>> a+="dfger">>> a'34 ...
分类:
编程语言 时间:
2016-05-31 15:46:46
阅读次数:
136
回调函数,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。 回调机制: ⑴ 定义一个回调函数; ⑵ 提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者; ⑶ 当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行 ...
分类:
其他好文 时间:
2016-05-10 12:41:40
阅读次数:
232
每一个JavaScript函数都是Function对象的一个实例, 它有一个仅供JavaScript引擎存取的内部属性[[Scope]]. 这个[[Scope]]存储着一个作用域的集合, 这个集合就叫”作用域链”, 集合中存储着”可变对象”VO或”活动对象”AO(AO比VO多this和argumen ...
分类:
编程语言 时间:
2016-05-09 01:34:43
阅读次数:
221
网上对于js的函数参数传递方式众说纷纭,这里也是自己在网上挑选了比较好的解释: js和java是比较相像的,懂得java中的参数传递方式理解js就不难。 如果说一个变量的值是绝对的基本类型变量如: 这种结果应该大家都没有任何意义,基本类型变量的值本身就是不可改变的,变的是参数地址。就算变量a和b的值 ...
分类:
编程语言 时间:
2016-05-02 20:00:15
阅读次数:
333
前天学习了关于内存的原理,理解了一下堆栈。今天学习指针,思路比刚开始学的时候更加清晰了一些。 首先在函数参数传递过程中,如果是基本变量,如int型,传递的参数是参数的拷贝 这个函数实际上对主函数里的参数没有做任何的修改 为什么呢?下面用一张图解释一下 这个图真是有够大的 学习了微机,认识了一下内存, ...
分类:
其他好文 时间:
2016-04-30 11:17:33
阅读次数:
138