> On Aug 27, 2014, at 8:43 AM, edward taffel <[email protected]> wrote:
>
>
>> On Aug 27, 2014, at 11:30 AM, Matthew LeRoy <[email protected]> wrote:
>> This seems to work in initial testing — the alert displays — but I get a
>> message in the console telling me that “NSAlert is being used from a
>> background thread, which is not safe. This is probably going to crash
>> sometimes. …” Presumably this is because I have overridden
>> +canConcurrentlyReadDocumentsOfType: to return YES for my documents,
>> resulting in document reading happening on a background thread. Changing
>> +canConcurrentlyReadDocumentsOfType: to return NO makes the warning message
>> go away.
>
> i had this problem too: you can show the alert on the main thread via e.g.
> performSelectorOnMainThread. (as was kindly pointed out to me by, if i
> remember correctly, graham cox).
I would not advise this. The main thread may itself be blocked due to waiting
on your document via -performSychronousFileAccesdUsingBlock:.
Matthew, could you perhaps perform automatic conversion, mark the document as
untitled, and display a notice about automatic conversion once the document has
been asked to -showWindows? This is the strategy I’ve suggested implementing in
our own apps in the future.
Something like:
- initWithContentsOfURL:… {
self = [super initWithContentsOfURL:…];
if (_autoConverted)
[self setDraft:YES];
return self;
}
- showWindows {
[super showWindows];
if (_autoConverted) {
NSAlert *autoConversionAlert = …;
NSWindow *docWindow = self.windowControllers[0].window;
[alert beginSheetModalForWindow:window completionHandler:…];
}
--Kyle Sluder
_______________________________________________
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]