OC NSArray&NSMutableArray,解归档

解归档:

  • 对象实现NSCoding协议,实现两个方法
- (instancetype)intiWithCoder:(NSCoder *)aDecoder {
      if  (self = [ super init]) {
            self.something = [aDecoder decodeObjectForKey:@"ksomething";
      return self
}

- (void)encodeWithCoder:(NSCoder *)aCoder {
      [aCoder encodeObject:self.something forKey:@"ksomething";
}

归档

[NSkeyedArchiver archiveRootObject: someObj toFile: filePath];

解归档

SomeObject *something = [NSKeyedUnarchiver unarchiveObjectWithFile: filePath];

NSArrary & NSMutableArray

  • 不可变数组
//得到一个不可变数组
 NSArray *array =  @[@11,@22,@33];

//得到一个不可变数组,他们内存地址是一样的
 NSArray *array2 = array.copy;

//得到一个可变数组,但是内存地址不一样
NSMutableArray *mutableArr = array.mutablecopy;
  • 可变数组
//得到一个可变数组
NSMutable *mutableArray1 = @[@11,@22].mutablecoty;

//得到一个不可变数组,他们两个的内存地址不同
NSArray *array = mutableArray1.copy;

//得到一个可变数组,内存地址相同
NSMutableNSArray *array = mutableArray1.mutablecopy;

在OC中extension里增加一个可变数组实例变量的时候,记得使用它的时候先mutableArr = [NSMutableArray array]或者mutableArr = @[].mutablecopy赋空

你可能感兴趣的:(OC NSArray&NSMutableArray,解归档)