Какой тип я должен использовать для строк имени файла в C для проекта iOS? - PullRequest
7 голосов
/ 06 января 2012

У меня есть библиотека C, которую я использую из программы iOS Objective-C.Одна из функций моей библиотеки C считывает и обрабатывает данные из файла.В настоящее время эта функция выглядит примерно так:

internalType* parseFile(const char* filename);

Передается ли в символе * имя файла, как этот безопасный на iOS, или я стреляю себе в ногу с помощью Юникода?Есть ли здесь предпочтительная практика?

Ответы [ 2 ]

3 голосов
/ 06 января 2012

Это скорее всего UTF-8.В целях безопасности следует использовать CFURLGetFileSystemRepresentation для URL-адресов и -[NSString fileSystemRepresentation] для путей.

2 голосов
/ 06 января 2012

Да ... const char * должно хорошо работать для вещей C, особенно если они соответствуют функциям C, которые вы, вероятно, будете вызывать, например fopen.

Если ваши файлы, вероятно, будут иметь дурацкие имена, отличные от Ascii, все ставки отключены. :-) Вам было бы безопаснее делать вызовы Objective C, которые принимают NSURL или NSString объектов.

...