0

我有一个书签,它描述了如何执行此操作的过程 - 在 OS X 中查找已安装 CD 的名称 - 但我在重新格式化我的 Mac 时删除了书签。:P

阅读该主题,这是我认为可能有效的方法。基本上,在继续应用程序之前,我需要验证是否安装了特定的 CD

  1. 访问 NSWorkspace
  2. 执行“checkForRemovableMedia”
  3. 从“mountedRemoveableMedia”获取已安装媒体路径数组
  4. 遍历已安装的媒体路径数组以查找包含目标光盘名称的路径

无论如何,这是我想出的一个可能的解决方案。其他人在 Cocoa 的这个领域有任何其他想法/知识吗?建议:)

编辑:我在下面制作了这段代码,但不起作用。它创建了一个包含 NSCFStrings 的 NSCFArray,我读过它并且不应该这样做。

 NSArray *mountedItems = [[NSWorkspace sharedWorkspace] mountedRemovableMedia];

 int count = [mountedItems count];
 int i = 0;

    for (i = 0; i < count; i++) {
         //line is not printing.  contains NSCFArray and NSCFStrings
            [NSLog print:[[mountedItems objectAtIndex:i] stringValue]];
 }
4

1 回答 1

1

好吧,所以我是个白痴。

[[NSWorkspace sharedWorkspace] checkForRemovableMedia];
NSArray *mountedItems = [[NSWorkspace sharedWorkspace] mountedRemovableMedia];

NSUInteger count = [mountedItems count];
NSUInteger i = 0;
for (i = 0; i < count; i++) {
    NSString *tempString = [mountedItems objectAtIndex:i];
    NSLog(@"%@",tempString);
}

我不仅错误地使用了 NSLog,而且完全没有意识到在字符串上调用 'stringValue' 可能是多余的。以及导致代码中断的原因。:P

现在可以了;我还添加了“checkForRemovableMedia”作为额外的预防措施。

于 2010-06-05T01:15:45.100 回答