I've had a similar problem to this in the past. I never bottomed it out. The workaround I used was to check validity of the row index for every data call and, if the index was invalid, return a suitable easily visible debug string ( "bad index") and post a timed update 0.25 second later.
I never saw my debug string and the code ran happily. Peter On 26 Apr 2012, at 11:23, Jean Suisse <[email protected]> wrote: > Dear Peter, > > Thank you for your reply. Here is the requested code (see below). > After more investigations, I would like to take back a previous statement, > that the tableview was perfectly aware that the number of rows in the DS was > changed. This is due to my inexperience in stepping through the code across > multiple threads. > > Here are the facts : > > - Only the controller removes rows from the datasource. Either in response to > user actions (canceling tasks) or as a result of a Task completed > notification from a running task. > - Each change in the dataSource is immediately followed by a reloadData > message sent to the TableView. > - Sometimes, randomly, the TableView requests a row index that is out of > bounds by one index (e.g. row #5 when the dataSource contains only 5 > elements). > > I am thinking that a redraw occurs in-between the removal of one element of > the table and the reloadData message. > For now, I did a quick fix for this issue by adding a category with > "safeObjectAtIndex"…. But one way to be certain would be to ensure that the > two messages (removal + reloadData) are sent without any thread/process > switching occurring… > > The code for numberOfRowsInTableView : (experimentList is an instance of > NSMutableAray) > > - (NSInteger)numberOfRowsInTableView:(NSTableView*)tableView > { > return self.experimentList ? [self.experimentList count] : 0; > } > > Jean > > > On 26 avr. 2012, at 11:45, Peter Hudson wrote: > >> >> Can you post your code for numberOfRowsInTableView: >> >> Peter > _______________________________________________ Cocoa-dev mailing list ([email protected]) 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [email protected]
