2012-02-27 10 views
1

私はTim Istedの "Beginning Mac Programming"という本を読んでいます.NSTableViewを扱うプログラムがついています。 私はNSDocumentから継承したCocoaアプリを持っています。アプリにはNSTableViewが含まれています。テーブルビューのデータソースをファイルの所有者に設定しました。実行時に* NSTableViewデータソースが不正です。 numberOfRowsInTableViewを実装する必要がありますとのtableView:objectValueForTableColumn:行:MyDocument.hのNSTableView不正なデータソース

インタフェースの実装は

#import "MyDocument.h" 

@implementation MyDocument 

- (id)init 
{ 
    self = [super init]; 
    if (self) { 
     shoppingListArray = [[NSMutableArray alloc] initWithObjects:@"pane",@"latte",@"pasta", nil]; 

    } 

    return self; 
} 

-(IBAction)addNewItemToShoppingList:(id)sender{ 
    NSString *item = [newItemTextField stringValue]; 
    [shoppingListArray addObject:item]; 
    [shoppingListTableView reloadData]; 
    NSLog(@"allocated"); 

} 
-(void)dealloc{ 
    [shoppingListArray release]; 
    [super dealloc]; 
} 
-(NSInteger)numberOfRowsInTableView{ 
    return [shoppingListArray count]; 
} 

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

私が間違って何をやっている間

#import <Cocoa/Cocoa.h> 

@interface MyDocument : NSDocument { 
    IBOutlet NSTextField *newItemTextField; 
    IBOutlet NSTableView *shoppingListTableView; 
    NSMutableArray *shoppingListArray; 
} 
-(IBAction)addNewItemToShoppingList:(id)sender; 
-(void)dealloc; 
-(NSInteger)numberOfRowsInTableView; 
-(id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex; 
@end 

あります?どうもありがとう。

答えて

1

numberOfRowsInTableViewを実装しましたが、numberOfRowsInTableView:を実装する必要がありました。正しい署名は次のとおりです。

-(NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView 
+0

ああ、それは本当に見逃していました。ありがとう。 – tagomago

関連する問題