iOS - OC Copy 拷贝】的更多相关文章

前言 copy:需要先实现 NSCopying 协议,创建的是不可变副本. mutableCopy:需要实现 NSMutableCopying 协议,创建的是可变副本. 浅拷贝:指针拷贝,源对象和副本指向的是同一个对象.对象的引用计数器 +1,其实相当于做了一次 retain 操作. 深拷贝:内容拷贝,源对象和副本指向的是两个不同的对象.源对象引用计数器不变,副本计数器设置为 1. 只有不可变对象创建不可变副本(copy)才是浅拷贝,其它都是深拷贝. 在 iOS 中并不是所有的对象都支持 cop…
1.类 1)根类:因为类 NSObject 是层次结构的最顶层,因此称为根类. 可以将类称为子类(subclass)和父类(superclass),也可以将类称为子类和超类. 2)分类/类别(category):允许以模块的方式向现有类定义添加新的方法(默认不能添加实例变量).扩展自己或他人以前实现的类,使它适合自己的需要. 分类的名称括在类名之后的一对圆括号"( )"中. @interface QCStudent (Print) @end @implementation QCStud…
ios+oc面试题     浅复制和深复制的区别?//浅拷贝和深拷贝答案:浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身.//通过对象的指针来访问这个对象深层复制(mutableCopy):复制引用对象本身意思就是有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源还是只有一份,那如果我们对A_copy执行了修改操作,那么发现A引用的对象同样被修改,这其实违背了我们复制拷贝的一个思想.深复制…
copy与mutableCopy都是深拷贝,区别是mutableCopy拷贝出的对象是可变的. OC对象基本都是通过指针访问,所以一般情况下,通过对指针的赋值都是浅拷贝,即只是拷贝了一份对象的指针,对象还是只有一个. 例: NSMutableString *str = [NSMutableString stringWithString:@"abc"]; NSString *str2 = str; str与str2指向的是同一个对象,str变了str2随之改变. NSMutableArr…
iOS中copy和strong修饰符的区别 //用copys修饰的生成的都是不可变的对象 ,如果调用可变类型方法的直接报错 @property(nonatomic,copy)NSString * cpStr; @property(nonatomic,strong)NSString *strongStr; 1.当copy的对象类型为不可变对象如NSString类型时,和Strong修饰作用是一样的 NSString *str = @"wxwx"; self.cpStr = str; se…
copy这在angularjs中是一个拷贝对象的方法: <!DOCTYPE html> <html lang="en" ng-app="myapp"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="js/angular.min.js"></script>…
iOS OC语言原生开发的IM模块,用于项目中需要原生开发IM的情况,具备发送文字.表情.语音.图片.视频等完整功能,包含图片预览视频播放等功能,此项目将会长期更新如有问题可以提出,我的邮箱:fshmjl@aliyun.com,我将尽快解决; 项目地址:https://github.com/fshmjl/RChat 效果图如下 项目介绍 项目中对输入框等模块功能进行了封装,方便复用或重写 输入框模块                  InputBox输入框功能页面            KInp…
以前没注意过 iOS 的 copy, nonatomic, assign, weak, strong 等关键字. 偏偏今天遇到了一个问题,恰恰是关键字的问题,如图: 之前用的是 assign, 没有用 copy, 网络请求之后的数据在 cell 里就莫名的置空了……找了好久,最后总算发现了,改成 copy 关键字,问题成功解决! 看来有必要去了解下关键字的用途了!…
一.先介绍 copy.strong.weak 的区别,如代码所示 @property(copy,nonatomic)NSMutableString*aCopyMStr; @property(strong,nonatomic)NSMutableString*strongMStr; @property(weak,nonatomic)NSMutableString*weakMStr; @property(assign,nonatomic)NSMutableString*assignMStr; NSMu…
1.运行时的使用 向分类中添加属性 // 包含运行时头文件 #import <objc/runtime.h> /* void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy) id objc_getAssociatedObject(id object, const void *key) 参数: object :属性的持有者 key :属性的键值 value…