我在用循环引用取消归档NSMutableSet时遇到问题

问题描述

|| 我在iPhone(iOS 4.3)应用中取消存档NSMutableSet对象时遇到问题。 我有一个UIImageView子视图,其中包含NSMutableSet类型的ivar。我已经在标头中定义了NSMutableSet(并在实现中对其进行了合成):
@interface MyView : UIImageView
{   
  NSMutableSet *group;
}

@property (nonatomic,retain) NSMutableSet *group;
该集合包含对MyView类型的零个或多个对象的引用。由于group是MyView的属性,因此对非空组成员(MyView对象)的引用是循环的。 我这样编码此视图:
- (void) encodeWithCoder:(NSCoder *)aCoder
{
  NSLog(@\"Encoding group for %@ -- %@\",self.imageFilename,self.group);
  [aCoder encodeObject:self.group forKey:@\"group\"];
}
NSLog显示正在归档的健康组对象。但是当我取消编码时,我得到一个NSException:
- (id) initWithCoder:(NSCoder *)aDecoder
{
  self = [super initWithFrame:CGRectZero];

  self.group = [aDecoder decodeObjectForKey:@\"group\"]; // <- NSException here.
  return self;
}
我第一次看到此错误,我得到了相当详细的错误消息: 由于未捕获的异常\'NSinvalidargumentexception \'而终止应用程序,原因:\'*-[NSCFSet count]:方法已发送至未初始化的可变集合对象\' 但是,当我重现该问题时,我得到的信息少得多: 抛出\'NSException \'实例后终止调用 achive使用以下命令创建:
[NSKeyedArchiver archiveRootObject:parentOfMyView toFile:myFilepath];
并以此打开:
[NSKeyedUnarchiver unarchiveObjectWithFile:myFilepath];
感谢您对此的任何帮助。 -丰富     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)