對於從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