Я читаю книгу «Начало программирования на Mac» Тима Истеда и застрял в программе, связанной с NSTableView.У меня есть приложение Какао, унаследованное от NSDocument.Приложение содержит NSTableView.Я установил источник данных табличного представления для владельца файла.После выполнения я получаю * Неверный источник данных NSTableView ().Необходимо реализовать numberOfRowsInTableView: и tableView: objectValueForTableColumn: row:
Интерфейс MyDocument.h имеет значение
#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
, а реализация -
#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];
}
Что я делаю неправильно???Большое спасибо.