#import "ViewController.h" @interface ViewController () @property (nonatomic, strong) NSMutableString *t_ori; @property (nonatomic, strong) NSMutableString *t_copy; @property (nonatomic, strong) NSMutableString *t_mCopy; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.t_ori = [NSMutableString stringWithString:@"test"]; self.t_copy = [self.t_ori copy]; self.t_mCopy = [self.t_ori mutableCopy]; } @end中若是類型是mutable的,copy, mutableCopy 後變量所只想的地址都是不一樣的。
#import "ViewController.h" @interface ViewController () @property (nonatomic, strong) NSString *t_ori; @property (nonatomic, strong) NSString *t_copy; @property (nonatomic, strong) NSString *t_mCopy; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.t_ori = @"test"; self.t_copy = [self.t_ori copy]; self.t_mCopy = [self.t_ori mutableCopy]; } @end若是是不可變類型的,則copy 後 self.t_copy 與 self.t_ori 指向的是同一個地址, self.t_mCopy則是不一樣的地址。
#import "ViewController.h" @interface ViewController () @property (nonatomic, strong) NSString *t_ori; @property (nonatomic, strong) NSString *t_copy; @property (nonatomic, strong) NSString *t_mCopy; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.t_ori = [NSMutableString stringWithString:@"teest"]; self.t_copy = [self.t_ori copy]; self.t_mCopy = [self.t_ori mutableCopy]; } @end這樣寫的話,3個變量的地址也都是不一樣的。