集合使用copy與mutableCopy的區別

滴水微瀾發表於2016-12-20

集合(NSArray,NSSet,NSDictionary等)使用copy與mutableCopy的區別是類似的,下面以NSMutableArray、NSArray 為例子驗證如下:

NSMutableArray *arrayM=[NSMutableArray arrayWithObjects:@"hello",@"word", nil];
    
    id objM=[arrayM mutableCopy];
    id obj=[arrayM copy];
    
    NSLog(@"objM:%@-----obj:%@",[objM class],[obj class]);

列印的結果:objM__NSArrayM-----obj:__NSArrayI

 NSArray *array=@[@"hello",@"word"];
    
    id objM1=[array mutableCopy];
    id obj1=[array copy];
    
    NSLog(@"objM1:%@-----obj1:%@",[objM1 class],[obj1 class]);

列印的結果:objM1__NSArrayM-----obj1:__NSArrayI

結論:

無論集合是否為可變集合,

對集合mutableCopy 得到的是可變集合;對集合copy 得到的是不可變集合;

 

相關文章