笔记备份
warwick93
这个作者很懒,什么都没留下…
展开
-
Objective-C中的单例模式
我们在OC中创建一个Person类的做法是:Person *p = [Person new];实际上我们知道这句代码执行了两个部分的内容Person *p = [[Person alloc] init];我们查看Xcode的文档可以发现,实际上alloc的过程并没有做什么事,而是调用了allocWithZone这个方法。 为了验证一下是否确实是allocWithZone这...原创 2018-05-17 10:35:54 · 338 阅读 · 0 评论 -
Objective-C中的NSString与NSMutableString详解
**NSString**1).是一个数据类型,保存OC字符串,本质上是一个类。既然是一个类,那么使用它创建对象的方法如下,这样创建出来的字符串是空的. NSString *str1 = [NSString new];NSString *str2 = [[NSString alloc] init];NSString *str3 = [NSString string];2).是OC中最...原创 2018-05-14 16:06:18 · 295 阅读 · 0 评论 -
Objective-C中的Key-Value Coding and Key-Value Observing(KVC与KVO)
KVC与KVO是Objective-C的关键概念,KVC指的是NSKeyValueCoding,一个非正式的协议,提供一种机制来间接访问对象的属性。KVO是一种实现KVC的关键技术之一。一个对象拥有某些属性。比如一个Person对象有一个name和address属性,以KVC的说法,Person对象分布有一个value对应于他的name和address的key。key是一个OC字符串,它对应的...原创 2018-05-21 14:56:34 · 420 阅读 · 0 评论 -
Objective-C中的NSDictionary、NSMutableDictionary详解
——–NSDictionary——– C++/STL中有一种容器叫做map,OC中的NSDictionary与map很类似,是一个拥有键值对的类/数据结构。这个键值对的要求是键必须遵守NSCopying协议(NSString就遵守这个协议),值需要满足是OC对象。NSDictionary的元素不可变,而NSMutableDictionary中元素可变。 1). 创建方法...原创 2018-05-15 15:57:49 · 3709 阅读 · 0 评论 -
Objective-C中的深拷贝与浅拷贝问题
深拷贝:深拷贝是指拷贝对象的具体内容,而内存地址是自主分配的,拷贝结束之后,两个对象虽然存的值是相同的,但是内存地址不一样,两个对象也互不影响,互不干涉。 浅拷贝:浅拷贝就是对内存地址的复制,让目标对象指针和源对象指向同一片内存空间,对其中任何一个指针所指向的对象进行修改,那么两个指针指向内容都会改变。在OC当中,“祖宗类”定义有copy\mutablecopy两种拷贝方式。 对于co...原创 2018-05-16 20:02:37 · 204 阅读 · 0 评论