我有一个属性的NSArray
属性调用toolbarButtons
在一个实例(当UIViewController
是模态)它需要一个NSMutableArray
,当UIViewController
就是非模态的,它需要仅仅是一个NSArray
。如下在NSArray中存储NSMutableArray?
@property (nonatomic, copy) NSArray *toolbarButtons;
我初始化toolbarButtons:
- (void) setToolbarButtons
{
UIBarButtonItem *exitButton = [[UIBarButtonItem alloc] initWithTitle:@"Exit" style:UIBarButtonItemStyleBordered target:self action:@selector(exitButtonPushed)];
toolbarButtonsTemp = (NSMutableArray *)[[NSMutableArray alloc] init];
[(NSMutableArray*)toolbarButtonsTemp addObject:exitButton];
self.toolbarButtons = toolbarButtonsTemp;
[exitButton release];
}
然后稍后我重写上述方法在这样的亚类:
我已初始化的属性这样
- (void) setToolbarButtons
{
[super setToolbarButtons];
UIBarButtonItem *leftFlexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *toolButton = [[UIBarButtonItem alloc] initWithTitle:@"Tools" style:UIBarButtonItemStyleBordered target:self action:@selector(toolButtonPushed)];
[(NSMutableArray*)self.toolbarButtons addObject:leftFlexibleSpace];
[(NSMutableArray*)self.toolbarButtons addObject:toolButton];
[toolButton release];
[leftFlexibleSpace release];
}
我收到以下错误:
[__NSArrayI addObject:]: unrecognized selector sent to instance
我知道这里有很多解决方法,但从设计的角度来看,我只是想知道我在做什么是可能的,以及如何纠正我的错误。
只是想知道,为什么你不使用一个NSMutableArray整个时间? – Vervious
@vervious - 因为有时会创建一个工具栏,我知道它永远不会改变。当你不需要它时,设计一个NSMutableArray是不是很糟糕? –