가 나는 NSArray
속성이 하나 개의 인스턴스합니다 (UIViewController
이 모달 인 경우)에이 NSMutableArray
할 필요가 toolbarButtons
라는 속성을 가지고 있고, 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];
}
그리고 나중에 나는이 같은 서브 클래스에서 위의 메소드를 오버라이드 (override)
- (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를 필요로하지 않을 때 나쁜 디자인이 아니겠습니까? –