0

이 경우 어떻게 작동합니까? NSMutabeArray * dataSource를 만들었습니다.Button을 사용하여 셀을 추가하는 방법은 무엇입니까?

: 내 .H 파일에 있지만, 오류의 무리 받고 "RootViewController.m : 오류 : 시맨틱 문제를 : 부동산 '은 dataSource가' 'RootViewController *'유형의 객체를 찾을 수 없습니다"

RootViewController.h

#import <UIKit/UIKit.h> 

@interface RootViewController : UITableViewController { 
NSMutableArray *dataSource; 
} 

@property (nonatomic,retain) NSMutableArray *dataSource; 
- (IBAction)addButton:(id)sender; 

@end 

RootViewController.m

#import "RootViewController.h" 

@implementation RootViewController 
@synthesize dataSource; 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
self.dataSource = [NSMutableArray arrayWithCapacity:1]; 
//adds right bar button. 
UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(add:)]; 
self.navigationItem.rightBarButtonItem=addButton; 
[addButton release]; 

} 

-(void)addButton:(id)sender{ 
[self.dataSource addObject:@"New Item"]; 
NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:[self.dataSource count] inSection:0]; 
[self.dataSource insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade]; 
} 

답변

1

하는 .m 파일에

@property (nonatomic,retain) NSMutableArray *dataSource; 

및 합성 함께. 내가 아는 모든 것은, 명시 적으로 변경할 수 배열을 초기화하고 모든 잘 될 것입니다 :

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.dataSource = [NSMutableArray arrayWithCapacity:1]; 

    //adds right bar button. 
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(add:)]; 
    self.navigationItem.rightBarButtonItem=addButton; 
    [addButton release]; 
} 

그리고, 물론,의 dealloc에 ​​놓습니다.

+0

더 좋은 방법이 있나요? – Jason

+0

NSFetchedResultsController. –

0

당신은 .H 파일의 속성을 작성하지 않은 당신이 자기와 함께 데이터 소스 변수를 사용했다. self.dataSource를 dataSource로 바꾸거나 속성을 생성하십시오. 일부 메모리 전문가는 의심의 여지가 왜 @synthesize 및 변경 가능한 배열 및 사전 (세트, 아마도) 잘 연주하지 않는 당신을 말할 수 없습니다

@synthesize dataSource; 
+0

여전히 오류가 발생합니다. 테이블 뷰 템플릿을 사용하고 그룹 테이블 뷰 테이블을 사용하고 있습니다. 기본적으로 오른쪽 탐색 바의 "+"버튼을 누르고 셀을 추가하기 만하면됩니다. 테이블에 대한 IB 옵션 이외의 RootViewController.xib를 변경할 수 없으므로 코드가있는 단추를 추가해야했습니다. 어쩌면 이것으로 더 많은 것을 정리할 수 있습니다. 빠른 응답 덕택입니다.하지만 작동하지 않습니다. 아마 내가 제공 한 정보가 더 도움이 될 것입니다. – Jason

+0

귀하의 원래 질문은 귀하의 의견과 매우 다릅니다 ... 귀하의 질문을 수정하여 명확하게 할 수 있습니다. 질문에 나와있는 것과 같은 오류가 계속 발생합니까? – GendoIkari

+0

내 질문은 어떻게 단추를 사용하여 셀을 추가합니까? 그게 내가 뭘하려고하는지 ...하지만 IB를 통해 탐색 버튼을 RootViewController.xib에 추가 할 수 없기 때문에 코드를 추가해야했습니다. 그래서 코드에서 추가 한 단추를 가져 오는 방법을 알아 내려고 노력하면서 그룹 테이블 목록에 셀을 추가했습니다. – Jason

관련 문제