Thanks for your replies.
Unfortunately, I can't easily avoid 
initWithHTML:dataUsingEncoding:documentAttributes: 
But I can postpone it long enough to move its execution to an other thread 
(serial dispatch queue).
That solves the issue.

Jean

On 8 mai 2013, at 21:14, Jens Alfke <j...@mooseyard.com> wrote:

> 
> On May 7, 2013, at 3:52 PM, Ken Thomases <k...@codeweavers.com> wrote:
> 
>> Yes, it can.  Under the hood, NSAttributedString is using WebKit for HTML 
>> rendering.  In part that means that, when invoked from a background thread, 
>> it has to shunt the work to the main thread.  But it also means the main 
>> thread may have to run the run loop during the call.  It's a nuisance, but 
>> it's necessary since HTML can have references to external resources that 
>> need to be loaded.
> 
> I’ve had trouble with this method in the past, for exactly that reason — you 
> can get weird reentrancy problems from runloop sources like timers being 
> invoked while in the middle of the call. (It’s also pretty slow.)
> 
> IMHO it’s best to avoid this method if you can. For example, the last time 
> this came up all I needed was the plain text, so I wrote a little string 
> transformer to strip out HTML tags and expand HTML entities. For more 
> involved work you could use NSXMLParser (with the “tidy” option) to parse the 
> HTML into a DOM and then walk through that.
> 
> —Jens


-----------
Jean Suisse
Institut de Chimie Moléculaire de l’Université de Bourgogne
(ICMUB) — UMR 6302


_______________________________________________

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