После быстрого теста, похоже, что при сбое iconForFileType
каждый раз возвращается один и тот же указатель. Это имеет смысл, потому что он, вероятно, просто объединяет одну общую ссылку на это изображение «без типа файла».
Итак, вы можете получить этот указатель один раз, с известным неизвестным типом файла:
// Do this once, at program startup for example, and keep the reference
NSImage* x = [[NSWorkspace sharedWorkspace] iconForFileType:@".this_is_not_a_file_type"];
Затем просто сравните указатель:
NSImage* y = [[NSWorkspace sharedWorkspace] iconForFileType:@".xxx"];
NSLog(@"%p %p", x, y);
if (x == y)
// `iconForFileType` failed