对于从ViewController.m下面的代码片断:如何将NSObject自定义子类的指针添加到NSMutableArray?
- (IBAction)buttonAction:(id)sender
{
CustomButton *button = (CustomButton *)sender;
button.associatedObject = [self.sourceOfObjects.objectArray lastObject];
[self.foo.arrayOfObjects addObject:button.associatedObject]; // this does not work?
}
•的CustomButton是的UIButton的子类,并具有@property(非原子,强)的AssociatedObject这是一个指向类型NSObject的的对象。
•sourceOfObjects是类型为MyCustomObject的@property(nonatomic,strong),它是NSObject的一个子类。
•objectArray是类型为NSMutableArray的sourceOfObjects的@property(非原子,强壮)。
•foo是MyCustomObject类型的ViewController的@property(nonatomic,strong),NSObject的子类。
•arrayOfObjects是类型NSMutableArray的foo的@property(nonatomic,strong)。
问题:任何想法为什么我无法将button.associatedObject指针添加到self.foo.arrayOfObjects,以便在self.foo.arrayOfObjects中有一个指向与button.associatedObject相同的对象的指针?
我期望发生什么:如果我随后询问[self.foo.arrayOfObjects lastObject],它应该返回button.associatedObject也指向的对象。
实际发生了什么:随后询问self.foo.arrayOfObjects.count返回0.我不相信这是arrayOfObjects的初始化问题,因为我有懒惰的实例化。
我希望我准确地说出了这个问题,试图做到精确。 :)
你是什么意思的“不工作”?解释(1)你预期会发生什么,以及(2)实际发生了什么。 –
编辑,谢谢。 –
Add:'NSLog(@“foo:%@”,self.foo.arrayOfObjects);''和'NSLog(@“sourceOfObjects:%@”,self.sourceOfObjects.objectArray);'在方法的开头确定它不是零。既然你“不相信这是初始化的问题”,为什么我们不确定,因为这应该工作。 :) – lnafziger