Man, I thought I had this all working, and after a few days of doing other 
stuff, it is back to my original issue.  I am now updating my textfield as 
follows, so no matter from where it is called, it will always be updated on the 
main thread:
- (void)updateStatus: (NSString *)status
{
    NSLog(@"%@", status);
    [self performSelectorOnMainThread:@selector( updateStatusWrapper:) 
withObject: status waitUntilDone: YES];
}

-(void)updateStatusWrapper: (NSString *) status
{
    self.progressStatus = status;
}

Again, all the logs get displayed, so I know updateStatus: is called, but 
again, in the parseData part, the string is not updated. For whatever reason, 
updateStatusWrapper: doesn't get called. I also tried YES and NO for 
waitUntilDone.

Any ideas what I am (still) missing?

- Koen.


On Oct 1, 2012, at 6:39 PM, Koen van der Drift <koenvanderdr...@gmail.com> 
wrote:

> 
> On Oct 1, 2012, at 6:31 PM, Mike Abdullah <cocoa...@mikeabdullah.net> wrote:
> 
>> Yes, you don't understand the consequences of your code yet. AppKit is not 
>> threadsafe. You absolutely MUST only update UI on the main thread for 
>> something like this.
>> 
>> Make sure your -parseData routine is threadsafe, and then bounce back over 
>> to the main thread for -finishedTask.
> 
> Oh I think I see now what I did wrong. Since I update the array *during* the 
> parse, the tableview already gets updated as well since it is bound to the 
> array. So I either need to update the array on the main thread, or wait with 
> updating it until after parseData is done. I'll try what works best.
> 
> - Koen.


_______________________________________________

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