Alexander,
Thanks for your help.
Yes, I set the breakpoint on the data source methods? The datasource methods 
are not reached at all.
I did not give you all the methods in my code (it is too lengthy). segmentDict 
is a global variable because I need it somewhere else.


segmentIndustryData is populated with the method [self insertObject: s 
inSectorDataAtIndex:(int)i] implemented as follows:


-(void) insertObject:(segmentIndustry *) s inSectorDataAtIndex:(int)index
{

//Add the inverse of this operation to the undo stack
NSUndoManager *undo = [[segmentTableView window] undoManager];
[[undo prepareWithInvocationTarget:self] 
removeObjectFromSectorDataAtIndex:index];
if (![undo isUndoing]){
[undo setActionName:@"Insert Stock"];
}
//Add the stock to Array
[self startObservingSelector:s];
[segmentIndustryData insertObject:s atIndex:index];
}


a dealloc method takes care of releasing the arrays and dictionary. Anyway, 
even without retain, the table doesn't reload data.



I do not think naming is the issue, it is more of the good habit to have.


 Thanks.




-----Original Message-----
From: Alexander Spohr [mailto:a...@freeport.de]
Sent: Sunday, December 20, 2009 09:52 AM
To: aronis...@afroamerica.net
Cc: cocoa-dev@lists.apple.com
Subject: Re: NSTableview datasource issues

Did you set a breakpoint on the data source methods?Please reread about memory 
management. Your code is full of wrong retains.Why is segmentDict a global 
variable? You just assign to it but never release it.segmentIndustry is a class 
and should be named with a capital S.segmentIndustryData is always empty. How 
should it populate your table view?     atzeAm 20.12.2009 um 02:09 schrieb 
aronis...@afroamerica.net:> I know this has been discussed before, but I have 
been going through the issue of reloadData and datasource methods not running. 
I cannot figure out what is going on with my datasource methods.> Everything is 
connected. But when on [segmentTableView reloadData], no datasource method is 
run.> After the application was running, I debugged the code and checked the 
classes of SelectorController and TableSource. They are all connected in 
runtime.For table view, I only connected it to SelectorController -> 
segmentTableView, and its dataSource to SelectorController -> segmentTableView. 
All of them are connected properly in runtime.In Log, when I print the 
datasource and delegate of SegmentTableView, it shows SelectorController.> > 
This is troublesome as I have 4 other tables in the same application that are 
loaded properly through their dedicated datasources.> It is only in this table 
that nothing is working. What am I missing? Your help is invaluable.> > > Her 
is some of the relevant code:> > > // SelectorController.h> #import > 
@classsegmentIndustry;> > > @interface SelectorController : NSObject {> 
NSMutableArray *segmentIndustryData;> IBOutletNSTableView *segmentTableView;> 
IBOutletNSArrayController *segmentDataController;> > IBOutletNSButton 
*stockSelectButton;> intmodelRS;> > }> > -(void) insertObject:(segmentIndustry 
*) s inSectorDataAtIndex:(int)index;> > -(IBAction) 
initializeSectorSegmentData:(id) sender;> @end> > > > // SelectorController.m> 
> > > #import "SelectorController.h"> #import "segmentIndustry.h"> #import 
"MyDocument.h"> > > NSDictionary *segmentDict;> > > @implementation 
SelectorController> > > - (id)init> {> self = [superinit];> if (self) {> > // 
Add your subclass-specific initialization here.> // If an error occurs here, 
send a [self release] message and return nil.> segmentDict 
=[NSMutableDictionarydictionary];> [segmentDictretain];> > }> return (self);> 
}> - (void)awakeFromNib> {> segmentIndustryData=[[NSMutableArrayalloc] init];> 
[segmentIndustryDataretain];> segmentDataController=[[NSArrayControlleralloc] 
init];> [segmentDataControllerretain];> > > }> //Load into TableView in the 
GUI> #pragma mark Table view dataSource methods> > > - (int) 
numberOfRowsInTableView:(NSTableView *) TableView> {> return 
[segmentIndustryDatacount];> > }> > > -(id)tableView:(NSTableView *)aTableView> 
ObjectValueForTableColumn:(NSTableColumn *)aTableColumn> row:(int)rowIndex> {> 
> NSString *identifier =[aTableColumn identifier];> segmentIndustry *stock 
=[segmentIndustryDataobjectAtIndex:rowIndex];> return [stock 
valueForKey:identifier];> > }> > > -(void) tableView:(NSTableView *) 
aTableView> setObjectValue:(id)anObject> forTableColumn:(NSTableColumn *) 
aTableColumn> row:(int) rowIndex> {> NSString *identifier =[aTableColumn 
identifier];> //What stock?> segmentIndustry *stock 
=[segmentIndustryDataobjectAtIndex:rowIndex];> [stock setValue:anObject 
forKey:identifier];> > //Set the value for the attribute named identifier> }> > 
> > > > > > -(IBAction)initializeSectorSegmentData:(id) sender> {> 
segmentDict=[[MyDocumentgetSectorSegmentData:(id) sender] mutableCopy];> 
[segmentDictretain];> NSWindow *w =[segmentTableViewwindow];> 
[wmakeKeyWindow];> //Fill the table row by row;> int i=0;> NSMutableArray 
*aXtemp;> if ([segmentIndustryDatacount]>0) 
[segmentIndustryDataremoveAllObjects];> [[segmentDataControllercontent] 
removeAllObjects];> for (idkeyinsegmentDict)> {> aXtemp = 
[NSMutableArrayarrayWithArray:[(NSArray *)[segmentDictobjectForKey:key] 
mutableCopy]];> if ([(NSString *) [aXtemp lastObject] intValue]== modelRS) {> 
[aXtemp insertObject:(NSString*) keyatIndex:(NSUInteger)1];> segmentIndustry *s 
= [[segmentIndustryalloc] init];> [s setSegName:(NSString *)[aXtemp 
objectAtIndex:(NSUInteger) 0]];> [s setSegOther:(NSString *)[aXtemp 
objectAtIndex:(NSUInteger)1]];> [s setSegIndustry:(NSString*)[aXtemp 
objectAtIndex:(NSUInteger)2]];> [s setSegSector:(NSString *)[aXtemp 
objectAtIndex:(NSUInteger) 3]];> // Add it to the content array of 
'stockDataController'> [segmentDataControlleraddObject:s];> [selfinsertObject: 
s inSectorDataAtIndex:(int)i];> ++i;> }> }> > //Re-sort (in case the user has 
sorted a column> [segmentDataControllerrearrangeObjects];> > // Get the sorted 
array> > NSArray *a = [segmentDataController arrangedObjects];> for ( i=0;i<[a 
count];++i) {> [segmentTableView editColumn:0 row:i withEvent:nil select:YES];> 
> [segmentTableViewreloadData];> > }> > > > > 
_______________________________________________> > Cocoa-dev mailing list 
(Cocoa-dev@lists.apple.com)> > Please do not post admin requests or moderator 
comments to the list.> Contact the moderators at 
cocoa-dev-admins(at)lists.apple.com> > Help/Unsubscribe/Update your 
Subscription:> 
http://lists.apple.com/mailman/options/cocoa-dev/atze%40freeport.de> > This 
email sent to a...@freeport.de
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to