【发布时间】:2022-01-16 18:36:55
【问题描述】:
文件存在于 iOS 捆绑目录中。 fopen() 在 iOS 设备上总是返回 NULL,但在 iOS sumulator 上正常,代码如下:
NSString *path = [NSBundle.mainBundle pathForResource:@"yuv420p_640x360" ofType:@"yuv"];
BOOL exists = [NSFileManager.defaultManager fileExistsAtPath:path];
NSLog(@"%d", exists); //prints "1"
const char *path2 = [path UTF8String];
FILE *fp = fopen(path2, "rb+"); //fp is NULL
环境:macOS 12.0.1、M1 MacBook Pro、iPadOS 15.0
【问题讨论】:
-
iOS 执行环境是沙盒的,你不能用“写”模式打开包中的文件,因为包中的文件不能被修改(尝试只用“r”作为模式)。
-
@ChristosKoninis 是的,最后我只是将“rb+”更改为“rb”并运行正常。谢谢
-
因为它帮助我将我的评论转移到一个完整的答案,以便更好地了解,以防有人遇到同样的问题,以便轻松找到解决方案