2012-05-22 8 views
1

NSTableView를 사용하려고합니다. (처음 시도한 것입니다.)하지만 아무것도 보여주지 않습니다.
프로젝트 (ARC)를 만들었고, 내 xib에 tableview가 있는데, "데이터 소스"와 "위임"을 내 AppDelegate 객체로 드래그했습니다.
나는이 AppDelegate.h에 다음 코드를
NSTableView에서 간단히 시도해도 아무 것도 표시되지 않습니다.

#import <Cocoa/Cocoa.h> 

@interface AppDelegate : NSObject <NSApplicationDelegate, NSTableViewDelegate, NSTableViewDataSource>{ 
    NSMutableArray* array; 
} 

@property (assign) IBOutlet NSWindow *window; 
@property (assign) IBOutlet NSTableView *tableView; 

@end 

그리고하는 .m :

#import "AppDelegate.h" 

@implementation AppDelegate 

@synthesize window = _window; 
@synthesize tableView = _tableView; 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    [array addObject:@"1"]; 
    [array addObject:@"2"]; 
    [array addObject:@"3"]; 
    [array addObject:@"4"]; 
    [_tableView reloadData]; 
} 

- (id)tableView:(NSTableView *) aTableView objectValueForTableColumn:(NSTableColumn *) aTableColumn row:(NSInteger) rowIndex{ 
    return [array objectAtIndex:rowIndex]; 
} 

- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView{ 
    return [array count]; 
} 

@end 


어떤 오류가 될 수 있을까? 감사합니다.

답변

4

게시 한 코드가 완료되었다고 가정하면 array 인스턴스 변수를 초기화하지 않는 것 같습니다. -applicationDidFinishLaunching:의 맨 위에 다음 줄을 추가합니다 :

array = [NSMutableArray array]; 
+1

을 나는를했고 여전히있는 tableview –

+1

스택 오버플로 사람들이 철저하게 원격으로 코드를 디버깅하는 것은 불가능 내부에 아무것도 표시되지 않는 것. 우리가 할 수있는 유일한 방법은 당신이 제공 한 정보를 취하여 분명한 문제를 찾아 내고 볼 곳을 제안하는 것입니다. 내 제안은 디버거를 사용하여 코드를 단계별로 실행하여 예상대로 작동하지 않는 부분을 찾는 것입니다. '-tableView : objectValueForTableColumn :'이 호출되고 있는지,'array'가 nil 또는 empty가 아니라는 것을 확인하면 좋은 시작처럼 보입니다. –

+1

방금 ​​프로젝트를 삭제하고 동일한 프로젝트로 새 프로젝트를 만들었습니다. 이제는 완벽하게 작동합니다. 어쨌든 고마워요! –

관련 문제