使用場(chǎng)景:
我有一個(gè)HomeModle的對(duì)象 self.model。現(xiàn)在需要 創(chuàng)建一個(gè)新的HomeModle,并且他的值和self.model一樣,但是只需要修改其中的一個(gè)價(jià)格。
剛開始我使用的
HomeModle *tempModel = self.model;
tempModel.price = @"100";
最后測(cè)試發(fā)現(xiàn)修改了self.model的數(shù)據(jù)。是因?yàn)椴皇巧羁截惖膯栴}笼恰。需要對(duì)HomeModle進(jìn)行<NSCopying> 協(xié)議,并在.m文件里實(shí)現(xiàn)協(xié)議方法
@interface HomeModle : NSObject <NSCopying>
- (id)copyWithZone:(NSZone *)zone {
HomeModle *copy = [[[self class] allocWithZone:zone] init];
if (copy) {
// 在這里復(fù)制其他屬性
copy.price = self.price;
copy.xxx = self.xxx;
}
return copy;
}
實(shí)現(xiàn)這些方法之后,就可以正常使用了
HomeModle *tempModel = [self.model copy];
tempModel.price = @"100";
之前好多基礎(chǔ)的東西歇终,自己掌握的不好社证,總是遇到了才了解,??????