我正在學習如何使用NSCopy。我想製作一個我正在使用的自定義對象的副本,這是UIScrollView中的一個ImageView。使用NSCopy複製包含指針的自定義對象?
我想實現NSCopying協議如下:
-(id)copyWithZone:(NSZone *)zone
{
ImageView *another = [[ImageView allocWithZone:zone]init];
another.imageView = self.imageView;
another.imageToShow = self.imageToShow;
another.currentOrientation = self.currentOrientation;
another.portraitEnlarge = self.portraitEnlarge;
another.landscapeEnlarge = self.landscapeEnlarge;
another.originalFrame = self.originalFrame;
another.isZoomed = self.isZoomed;
another.shouldEnlarge = self.shouldEnlarge;
another.shouldReduce = self.shouldReduce;
another.frame = self.frame;
//another.delegate = another;
another.isZoomed = NO;
[another addSubview:another.imageView];
return another;
}
然後在另一個類的對象複製:
ImageView * onePre = [pictureArray objectAtIndex:0];
ImageView * one = [onePre copy];
複製會進行,但是我有一個奇怪的問題。複製對象的ImageView(UIImageView)和ImageToShow(UIImage)屬性看起來與原始對象相同。這種有意義的方法就像在複製代碼中我重新指向一個指針,而不是製作ImageView和ImageToShow的新版本。
我的問題是如何製作一個包含指向其他對象的對象的副本?
謝謝!
UIImageView和UIImage不符合NSCopying,如果你想複製它們,你必須實現它到你自己的類別。 – 2013-04-04 11:50:02
啊,想知道這是否是答案 - 謝謝。 – GuybrushThreepwood 2013-04-04 12:33:27