重新分配代表不起作用

时间:2014-05-12 20:41:12

标签: ios objective-c delegates

如果我首先在“Cat”对象上执行此操作:

self.feeder.delegate = self;

然后再做这个

Dog *dog = [[Dog alloc] init];

dog.feeder = cat.feeder;
dog.feeder.delegate = dog;

NSLog(@"DELEGATE: %@", dog.feeder.delegate); //this logs a DOG

委托方法是为Cat而不是Dog调用的,即使我记录委托时它说的是委托代表。

如何正确重新分配代表?

1 个答案:

答案 0 :(得分:2)

问题是这些不是相同的喂食器。你在说:

self.feeder.delegate = self; // self is a Cat

然后你说这个:

dog.feeder = cat.feeder;

但是cat不是self,所以这些是两只不同的猫和两种不同的喂食器。也许你的意思是说

dog.feeder = self.feeder;