如果我首先在“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调用的,即使我记录委托时它说的是委托代表。
如何正确重新分配代表?
答案 0 :(得分:2)
问题是这些不是相同的喂食器。你在说:
self.feeder.delegate = self; // self is a Cat
然后你说这个:
dog.feeder = cat.feeder;
但是cat
不是self
,所以这些是两只不同的猫和两种不同的喂食器。也许你的意思是说
dog.feeder = self.feeder;