У меня странная проблема в моем приложении Cocoa. У меня есть главное окно с NSTableView в нем с классом контроллера (PropValTableHandler). Я установил соединения между моим NSTableView и PropValTableHandler, но когда вызывается метод «numberOfRowsInTableView», похоже, что не используется «PropValTableHandler», инициализированный в «AddDelegate», поскольку поле «propMan» не инициализировано (это похоже на используется обычная инициализация, поэтому это должен быть другой экземпляр этого класса). Я делаю что-то неправильно? У меня есть другой обработчик NSTableView в другом окне, который работает, но у него нет собственного метода инициализации.
Исходные коды:
Делегирование приложения
#import "AppDelegate.h"
@implementation AppDelegate
@synthesize propValTableController = _propValTableController;
-(id) init
{
self = [super init];
if (self)
{
_propMan = [[OCPropertyManager alloc]initWithPath:"./data/"];
_propValTableController = [[PropValTableHandler alloc]
[initWithPropManager:_propMan];
}
return self;
}
PropValTableHandler
@interface PropValTableHandler : NSObject <NSTableViewDataSource>
@property IBOutlet NSTableView * constants;
@property OCPropertyManager * propMan;
-(id) initWithPropManager:(OCPropertyManager*)pm;
-(NSInteger) numberOfRowsInTableView:(NSTableView *)tableView;
@end
#import "PropValTableHandler.h"
@implementation PropValTableHandler
-(id) initWithPropManager:(OCPropertyManager*)pm
{
self = [super self];
if (self)
{
self.propMan = pm;
}
return self;
}
/*********** TABLEVIEW DATASOURCE ******************/
-(NSInteger) numberOfRowsInTableView:(NSTableView *)tableView
{
NSInteger count = [_propMan.consts count];
return count;
}
/**************************************************/
@end
_propMan
? - person Zhans   schedule 07.04.2014