对于 ViewController.m 中的以下代码片段:
- (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(非原子,强)关联对象,它是指向NSObject 类型对象的指针。
• sourceOfObjects 是MyCustomObject 类型的self 的@property(非原子,强),是NSObject 的子类。
• objectArray 是NSMutableArray 类型的sourceOfObjects 的@property(非原子,强)。
• foo 是MyCustomObject 类型ViewController 的@property(非原子,强),是NSObject 的子类。
• arrayOfObjects 是NSMutableArray 类型的foo 的@property(非原子,强)。
问题:知道为什么我不能将 button.associatedObject 中的指针添加到 self.foo.arrayOfObjects 以便我在 self.foo.arrayOfObjects 中有一个指针指向与 button.associatedObject 相同的对象吗?
我期望会发生什么:如果我随后要求 [self.foo.arrayOfObjects lastObject],它应该返回 button.associatedObject 也指向的对象。
实际发生的情况:随后要求 self.foo.arrayOfObjects.count 返回 0。我认为这不是 arrayOfObjects 初始化的问题,因为我有延迟实例化。
我希望我准确地表达了这个问题,尽量准确。:)