美文网首页
GeekBand-OC第二周学习笔记

GeekBand-OC第二周学习笔记

作者: stevyqi | 来源:发表于2016-05-21 21:10 被阅读0次

由于时间有限,所以写的比较粗糙,也没有特别深入的地方,只是一点点心得体会,作为初学者,如果不准确或不精确的地方欢迎大家留言指导!!!

一、字符串

OC中字符串也有常量池的概念,NSString的“不可变性”也是类似的,比较有意思的是其子类NSMutableString,其作用是在我们需要频繁改变字符串时使用,避免程序不断为我们分配新的内存空间。老师也讲了OC这样做的缺点,NSString如果创建的是其子类,那么其“不可变性”就受到挑战。

二、集合

1、NSArray用于对象有序集合

2、NSSet用于对象无序集合

3、NSDictionary用于键值映射

集合对象的重要性不言而喻,OC的集合对象也是很有特点的。

首先NSArray、NSSet、NSDictionary的元素必须为引用对象;

其次其创建后元素对象不可变,但对象的属性可以变化;

当然OC也为我们提供了他们的子类NSMutableArray、NSMutableSet、NSMutableDictionary以供满足我们“可变”的需求;

还有一点值得关注的是他们均使用了NSFastEnumeration协议,该协议使得我们可以便捷的使用for in来遍历集合;

查看官方文档它们似乎都只有一个子类,还有一点让我感觉有些不同的是他们还有一些排序方法,当然要返回一个新的集合;

总体感受的OC的集合对象似乎不是非常复杂,但其三种对象是绝对能满足大部分需求。

三、ARC

这部分上周大致了解过一些,没有深入研究,大致理解OC的垃圾回收机制和autoreleasepool的大致用法。

四、协议

协议是非常有意思的,其作用和java中的接口类似,但又有些高级的地方,方法中可以指定对象必须实现一些协议,还可以多种协议组合,当然协议也是可以相互继承的。

协议还非常普遍的使用的代理模式中,代理模式相信在面向对象中是比较常用的设计模式,而且使用起来感觉也不复杂。

五、类别

类别也是非常有意思的,感觉上有点像装饰模式,因为在类别里面不止可以实现新的方法,同样也可以重写原有的方法。这样就可以让我们轻松的实现装饰模式,只是我在查阅其他资料的时候看到大家写的OC中的装饰模式似乎不是我想象中的写法,这里就不再过于纠结这点,毕竟设计模式也是为了让我们写出更为更为可读可靠的代码,不必为了设计模式而去设计。突然感觉路漫漫其修远兮。

六、扩展

扩展相当于匿名的类别,但是扩展必须要有源码,比类别的优势是可以添加属性、实例变量。

上周学习的时间实在是有点少,写的过于粗糙请大家见谅。本周开始了IOS应用开发实战,大家加油!

相关文章

网友评论

      本文标题:GeekBand-OC第二周学习笔记

      本文链接:https://www.haomeiwen.com/subject/qplorttx.html