微专业GeekBand-Objective-C笔记 -- 第二周

总结:

NSSting&NSMutableString:

拥有共享机制和恒定性,只能更改指针,而不能更改对象本身在堆内的数据。

伪更改:str1=[str1 stringByAppendingString: @"Whatever"]

等于的两种意思:值相等 ( [str1: isEqualToString str2] )和指针相等 ( str1 == str2 )。

例子,就好像搬家,地址改变了但是房子依旧存在,每一次改变都会制造一栋新的房子,所以说这种更改并不好。

NSMutableString拥有可变性,可以直接通过 [str appendString: @"String"] 来更改

NSMutableString最好在一开始就设定好它的capacity,方法: str = [str NSMutableString stringWithCapacity : capacity]

微专业GeekBand-Objective-C笔记 -- 第二周_第1张图片
NSString总结

NSArray&NSMutableArray

Array总结

和Array相比,还有没有特定顺序(无序)的Set,以及Dictionary,都具有常量性,他们都有Mutable的子类。

ARC 自动引用计数

微专业GeekBand-Objective-C笔记 -- 第二周_第2张图片

协议 Protocol

协议是一个只描述外部接口,不提供实现(只能存在于.h文件里面)

它的里面不会包含实例变量,同时,它的@property是不会由编译器自动产生一个“_名字”的实例变量的。

它可以作为声明变量的一部分,但是不可以创建实例

有两种⚠️警告需要注意:没有遵守协议,将一个没有遵守协议的值赋给一个行为

可以通过 confirmsToProtocal: 来判断是否实现协议

协议本身可以互相继承,但是子协议中必须实现父协议

类别 Category

可以添加实例方法,可以添加类方法,可以重写基类方法。(不需要源代码)

不能添加属性,实例变量和已存在的重名的方法

命名规范:“类名+扩展方法.h/.m”

扩展 Extension

需要源代码!

可以添加属性,实例成员,类方法,实例方法,可以改写读写属性(可以放大,但是不可以缩小,例如可以从readonly变成readwrite,但是不可以颠倒)

扩展不允许外部访问:所以用于隐藏信息,或是用于类外不需要,但是类内需要的成员

你可能感兴趣的:(微专业GeekBand-Objective-C笔记 -- 第二周)