Мне нужно определить, находится ли данная строка NSSt в форме NFD. Как мне это сделать?
Контекст:
Путь к файлу, который я получаю из Mac OS (в форме NSString), находится в канонической разложенной форме (NFD). Это особенно верно, когда файловая система HFSPlus.
http://developer.apple.com/mac/library/technotes/tn/tn1150.html#CanonicalDecomposition
Мне нужна предварительно составленная строка из этого. Теперь я хочу запустить функцию precomposedStringWithCanonicalMapping
, только если я знаю, что имя файла разложено в форме NFD.
Решение, о котором я мог подумать:
//works on the idea that NFD(NFD(x)) = NFD(x)
BOOL IsCanonicallyDecompsed(NSString *initialFilePath) {
//decompose the string to NFD form
NSString *nfdFormOfStr = [initialFilePath decomposedStringWithCanonicalMapping];
char *ndfFormUTF8 = [nfdFormOfStr UTF8String];
char *intialPathUTF8 = [initialFilePath UTF8String];
return (strcmp(ndfFormUTF8, intialPathUTF8) == 0);
}
Мое решение в порядке? Кроме того, верно ли мое понимание вывода файловой системы (в NFD)?