我发现我的设备正在使用IOServiceGetMatchingServices
并得到这样的属性字典:
kernResult = IORegistryEntryCreateCFProperties(nextMedia,
(CFMutableDictionaryRef *)&props,
kCFAllocatorDefault, 0);
从该字典中,我可以提取图标的信息:
NSString *bId = [props valueForKeyPath:@"IOMediaIcon.CFBundleIdentifier"];
NSString *rFile = [props valueForKeyPath:@"IOMediaIcon.IOBundleResourceFile"];
那两个给了我这个(例如):
com.apple.iokit.IOStorageFamily(捆绑标识符) Internal.icns(资源文件)
我尝试使用此方法提取图标:
NSBundle *bundleWithIcon = [NSBundle bundleWithIdentifier:bId];
NSString *iconPath = [bundleWithIcon pathForResource:rFile ofType:nil];
但是bundleWithIcon
是nil
。
这甚至是获取图标的正确方法吗?
我想我必须以某种方式加载捆绑包才能加载它bundleWithIdentifier
,我该怎么做?
PS:还有另一个问题(我认为)试图问同样的事情,但只要求捆绑,而不是如果这是正确的方法。