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 <jean.li...@gmail.com> 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 (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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

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

Reply via email to