Поиск имени вставленного CD в Какао - PullRequest
0 голосов
/ 04 июня 2010

У меня была закладка, описывающая процесс, как это сделать - найти имя смонтированного компакт-диска в OS X - но я удалила закладку, когда переформатировала свой Mac. : P

Читая эту тему, я думаю, это может сработать. По сути, мне нужно проверить, смонтирован ли конкретный CD, прежде чем продолжить в приложении

  1. Доступ к NSWorkspace
  2. Выполнить 'checkForRemovableMedia'
  3. Получение массива подключенных путей мультимедиа из 'mountRemoveableMedia'
  4. Пробежаться по массиву подключенных носителей, чтобы найти путь, содержащий имя целевого диска

Во всяком случае, это то, что я придумала как возможное решение. У кого-нибудь еще есть какие-либо другие идеи / знания в этой области в Какао? Предложения:)

EDIT: Я сделал этот код ниже, но не работает. Он создает NSCFArray, который содержит NSCFStrings, который я прочитал и не должен делать.

 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]];
 }

1 Ответ

1 голос
/ 05 июня 2010

ОК, так что я идиот.

[[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' в качестве дополнительной меры предосторожности.

...