美好的一天,我想为具有可可框架的文件类型设置我的应用程序默认值。现在我写下一个代码:
bool setappasdefualt()
{
OSStatus returnStatus = LSSetDefaultRoleHandlerForContentType(CFSTR(".txt"), kLSRolesAll, (CFStringRef) [[NSBundle mainBundle] bundleIdentifier]);
if (returnStatus != 0)
{
NSLog(@"Got an error when setting default application - %ld", returnStatus);
return false;
}
return true;
}
但在执行后会收到错误50.我做错了什么?
答案 0 :(得分:4)
" .txt
"是文件扩展名,而不是统一类型标识符(UTI)。
您需要使用适当的UTI,例如CFSTR("public.plain-text")
用户Guillaume编写了一个很好的小函数来将文件扩展名转换为UTI' s you can see it here, named "UTIforFileExtension:
"(如果有帮助,你应该回答他的答案: - )