1、为什么NSString 用copy
strong和retain同义, weak和assign同义, 为什么要采用这种说法, 似乎是ARC出现后为了消除引用计数的观念而采用的做法. 至于为什么要用copy, 由于纯NSString是只读的, 所以strong和copy的结果一样,据stackOverflow上的说法,是为了防止mutable string被无意中修改, NSMutableString是NSString的子类, 因此NSString指针可以持有NSMutableString对象.
2、copy的浅拷贝与深拷贝
3、strong 修改数组中指向同一地址的数据造成的数据污染
@property (strong, nonatomic) MerchantConfigListModel *configListModel;
[cellArray addObjectsFromArray:self.configListModel.Order];
if (self.configListModel.Order.count) {
//这里一定要用copy,不然会污染别处组数里self.configListModel.Order[0]指针的内容。
MerchantConfigListFirstModel *firstModelLastest = [self.configListModel.Order[0] copy];
firstModelLastest.Name = [CashCouponServer changeMerchantLatestToCouponLatest:firstModelLastest.Name];
[cellArray removeObjectAtIndex:0];
[cellArray insertObject:firstModelLastest atIndex:0];
}