如何使用委托将对象添加到NSMutableArray?

时间:2014-05-03 14:06:41

标签: class delegates nsmutablearray

我正在尝试将对象添加到NSMutableArray taskArray。该对象是taskClass的一个名为emptyTask的实例。当我创建emptyTask并尝试将其添加到myDelegate时,我收到以下错误:' NSInvalidArgumentException',原因:' - [TaskClass copyWithZone:]:无法识别的选择器发送到实例0x8c63f10

myDelegate = [UIApplication sharedApplication].delegate;
myDelegate.taskArray = [[NSMutableArray alloc]init];
TaskClass* emptyTask = [[TaskClass alloc]init];
emptyTask = [emptyTask starterTaskClass];
[myDelegate.taskArray addObject:emptyTask];

我可以用NSString替换emptyTask并添加到myDelegate。 我也可以将emptyTask添加到本地创建的NSMutableArray中并且它可以工作。 所以它似乎与myDelegate的课程有关。 我有#import" TaskClass"在我的所有头文件中。

思想?

1 个答案:

答案 0 :(得分:0)

有些东西试图将你的委托复制到某个地方,直接或(更有可能)将它作为字典中的密钥使用。你有几个选择

  • 弄清楚在哪里并将其更改为不复制/使用字典;或
  • 实施-[TaskClass copyWithZone:];只要您这样做,您也可以声明自己符合NSCopying协议。