首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSWorkspace设置图标:文件:选项:崩溃

NSWorkspace设置图标:文件:选项:崩溃
EN

Stack Overflow用户
提问于 2013-01-29 04:36:32
回答 1查看 556关注 0票数 1

我有时会在NSWorkspace上遇到崩溃。

任何帮助都是非常感谢的。这是崩溃堆栈,

代码语言:javascript
复制
0   libsystem_kernel.dylib          0x00007fff85bfbe56 __semwait_signal_nocancel + 10
1   libsystem_c.dylib               0x00007fff8c04818b nanosleep$NOCANCEL + 139
2   libsystem_c.dylib               0x00007fff8bfe7c78 usleep$NOCANCEL + 53
3   libsystem_c.dylib               0x00007fff8bfe7aa6 abort + 187
4   libsystem_c.dylib               0x00007fff8c04684c free + 389
5   com.apple.CoreServices.CarbonCore   0x00007fff8df7aaf7 CSMemDisposePtr + 23
6   com.apple.CoreServices.CarbonCore   0x00007fff8df7aaba CSMemDisposeHandle + 79
7   com.apple.CoreServices.CarbonCore   0x00007fff8df7c355 DisposeHandle + 9
8   com.apple.AppKit                0x00007fff90356598 -[NSWorkspace setIcon:forFile:options:] + 566

这是代码,

代码语言:javascript
复制
static NSImage  *FolderIcon = nil;

if(!FolderIcon) {
        FolderIcon = [[NSImage imageNamed:@"xxx.icns"] retain];
}

if(![[NSWorkspace sharedWorkspace] setIcon: FolderIcon
                                       forFile:Path
                                       options:0]) {
    NSLog(@"error");
}

我使用静态图标,所以我不认为有悬空指针的可能性,而且我检查如果我们传递的文件路径不存在,那么它会返回"NO“。但它并没有崩溃。

这是很少重现的。将粘贴错误,一旦它重新生成

EN

回答 1

Stack Overflow用户

发布于 2016-04-15 20:53:45

您不应该一次从多个线程调用-setIcon:forFile:options:

来自Documentation

从应用程序的任何线程调用此方法都是安全的,但每次只能从一个线程调用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14570758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档