2018年6月28日 星期四

[array copy] 和 [NSArray arrayWithArray:array] 的異同

// https://segmentfault.com/q/1010000003854902
如果arrayimmutable类型的NSArray
  • copy只是retain,没有创建新对象
  • arrayWithArray 创建了新的NSArray对象,并将原有数组元素填充进去,数组元素还是原来的对象
如果arraymutable类型的NSArray
  • 二者最终结果是等效的,创建了新的NSArray对象,但数据元素还是原来的对象
如果array == nil
  • copy的结果是nil
  • arrayWithArray 结果是长度为0的NSArray对象
无论哪种情况,数组元素都是共享的 不会被复制

沒有留言:

張貼留言