我在C项目中为iOS项目使用什么类型的文件名字符串?

时间:2012-01-05 22:54:40

标签: objective-c c string

我有一个我在iOS Objective-C程序中使用的C库。我的C库的一个功能是读入并处理文件中的数据。目前该功能看起来像这样

internalType* parseFile(const char* filename);

在iOS上传递一个char *作为文件名这样安全吗?或者我用unicode拍摄自己的脚?这里有首选做法吗?

2 个答案:

答案 0 :(得分:3)

可能是UTF-8。为安全起见,您应使用CFURLGetFileSystemRepresentation表示网址,-[NSString fileSystemRepresentation]表示路径。

答案 1 :(得分:2)

是的... const char *应该适用于C事物,特别是当它们与您可能调用的C函数匹配时,例如fopen

如果你的文件可能有古怪的非Ascii文件名,那么所有的赌注都会被取消。 :-)使用NSURLNSString个对象的Objective C调用会更安全。