【转】 NSArray copy 问题】的更多相关文章

转自:   http://blog.sina.com.cn/s/blog_6b1e4a060102uz0i.html   好久没写博客了,今天看到同事的代码中用到了 copy 这个 方法,之前也有了解过,但是不是很深入,概念都比较模糊,虽然已经搞了一年的 iOS 开发,但是 还是 不太了解 真是惭愧,于是乎自己就写了点儿东西来测试,我知道iOS中都是指针 也就是说 如果 有一个 array ,然后申明一个 array1 = [array copy];那么array1和array是指向同一片内存的…
面试过程中经常被问到ARC中Strong.Copy的区别是什么.普通的回答是:一样.文艺(正确)的回答是:分情况(我擦!WQY#$&Y**%OWEUR) 可以先参考这篇文章http://www.cnblogs.com/lihaiyin/p/4647426.html 问题一:到底用Copy还是Strong 1. 把不可变对象写成Copy:   如果把不可变对象赋值给此属性,内存中其实就是retain了一下. 如果把可变对象赋值给此属性,会生成新的不可变对象,避免值的变化 2. 把不可变对象写成St…
Objective - C 中有很多在日常项目中经常用到的常用代码,在这里着重的讲一下关于copy 和 mutableCopy 的区别以及相关用法. Objective - C 中可变对象和不可对象经常用的如下: NSString. NSMutableString | NSArray.NSMutableArray, 分开说: A:NSString. NSMutableString 二者的copy方法返回类型为: [NSString copy]                         浅拷…
目录: 一.Foundation常用类 二.Foundation简介 三.NSObject 四.NSString 回到顶部 一.Foundation常用类 1 NSObject.NSString.NSMutableString 2 NSNumber.NSValue.NSDate.NSArray 3 NSArray的遍历.NSArray的新语法(IOS6).NSArray Copy.NSArray排序 4 NSSet.NSMutableSet.NSDictionary.NSMutableDicti…
          HEC-ResSim Reservoir System Simulation             User's Manual       Version 3.1 May 2013     Approved for Public Release. Distribution Unlimited.     CPD-82 REPORT DOCUMENTATION PAGE Form Approved OMB No. 0704-0188 The public reporting b…
NSArray: //main.m #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //这里为不可变数组赋值以可变字符串对象,稍后会作说明,此测试换成NSString也可. NSArray *array1 = [[NSArray alloc]initWithObjects: [NSMutableString stringWithString:@"…
-copy, as implemented by mutable Cocoa classes, always returns their immutable counterparts. Thus, when an NSMutableArray is sent -copy, it returns an NSArray containing the same objects. 一些参考:http://stackoverflow.com/questions/9859719/objective-c-de…
问题:NSMutableArray 声明为 copy 属性参数后即使接受NSMutableArray变量依然为NSArray变量 测试: 属性申明为: 1 @property (nonatomic, copy) NSMutableArray *data; 当 1 self.data = [[NSMutableArray alloc] init]; 或者接受一个NSMutableArray变量时候 1234       if (![self.data isKindOfClass: [NSMutab…
因为父类指针可以指向子类对象,使用 copy 的目的是为了让本对象的属性不受外界影响,使用 copy 无论给我传入是一个可变对象还是不可对象,我本身持有的就是一个不可变的副本. 如果我们使用是 strong ,那么这个属性就有可能指向一个可变对象,如果这个可变对象在外部被修改了,那么会影响该属性. copy 此特质所表达的所属关系与 strong 类似.然而设置方法并不保留新值,而是将其“拷贝” (copy). 当属性类型为 NSString 时,经常用此特质来保护其封装性,因为传递给设置方法的…
一.NSMutableArray 被copy.strong修饰后的变化: 把NSMutableArray用copy修饰有时就会crash,因为对这个数组进行了增删改操作,而copy后的数组变成了不可变数组NSArray,没有响应的增删改方法,所以对其进行增删改操作就会报错. 举例如下: (1)copy: @property (nonatomic, copy  ) NSMutableArray *a; NSMutableArray* b = [NSMutableArray array]; a =…