是否有更好的方法来深度复制UIWebView?

时间:2013-04-12 04:00:15

标签: ios objective-c uiwebview deep-copy

我设法通过在新UIWebView中加载NSURLRequest来深度复制UIWebView。 我还设法使用javascript复制“scrollTo”位置。 现在我正在考虑复制历史以及许多其他事情。

是否有记录的方法可以正确地执行此操作,或者我几乎在那里?

1 个答案:

答案 0 :(得分:1)

不幸的是,没有直接的方法来实现它。

由于UIWebView不符合NSCopying协议,我相信您的方法到目前为止有效。

如果你想让这个可重用,你可以考虑继承UIWebView并在copyWithZone:协议方法的NSCopying方法中实现你的复制算法。

如果您这样做,则可以随后使用标准copy方法深层复制对象。

作为一个例子

UICopyableWebView.h

@interface UICopyableWebView : UIWebView <NSCopying>
@end

UICopyableWebView.m

#import "UICopyableWebView.h"

@implementation UICopyableWebView
- (id)copyWithZone:(NSZone *)zone {
     id copy = [[[self class] alloc] init];

     if (copy) {
         // copy the relevant features of the current instance to the copy instance
     }
     return copy;
}
@end