[英]Using fopen() in Objective-C
由于在这部分代码中出错,我一直遇到崩溃,我很困惑:
FILE *fid200;
fid200 = fopen ( "Length200Vector.txt" , "w" );
if (fid200 == NULL)
perror("Error opening Length200Vector.txt");
for (int n = 0; n<200; n++) {
if (n == 0) {
fprintf (fid200, "%f", self.avgFeatureVect[0][n]);
}
else {
fprintf (fid200, ", %f", self.avgFeatureVect[0][n]);
}
}
fprintf (fid200, "\n");
fclose(fid200);
错误是:打开Length200Vector.txt时出错:不允许操作。
该文件驻留在我的项目的Resources文件夹中,该行正在.mm文件中执行。 在.cpp文件中的同一项目中,我使用的几乎完全相同的代码运行没有问题。 似乎无法想出这一个......
谢谢
关于您的评论,这是一个iOS应用程序:您不允许(就iOS沙箱而言)执行修改 (fopen()中的“w”)文件访问iOS应用程序中除了位于应用程序中的文件之外的任何内容“文档“目录(或一般应用程序资源〜/ Library / Application Support /”bundle ID“目录,以及临时文件,通过调用NSTemporaryDirectory()函数[1]返回的目录)。
通过类似的方式访问“Documents”目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docs_dir = [paths objectAtIndex:0];
如果您有一个资源文件,您需要在应用程序执行期间进行修改,您必须先将其复制到“Documents”目录,然后进行修改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.