我在 iPhone 应用程序中遇到问题,当应用程序重新启动时,某些文件在应用程序运行时显示为 0 大小。我已经检查了我的代码。这些文件的编写方式基本上是:
NSFileHandle *fHandle = [NSFileHandle fileHandleForWritingAtPath: myFileName];
do
{
// code to set value of myNSData
[fHandle writeData: myNSData];
// some more logic here
}
while (!done)
[fHandle closeFile];
我已经在模拟器和真实设备上看到了这个问题。它只是偶尔发生,所以情况很难追踪。
我的问题是:我是否需要调用 [fHandle synchronizeFile] 来确保数据进入永久存储?当我重新打开应用程序时,iOS 是否有可能在将文件缓冲区发送到永久存储之前丢失文件缓冲区中的数据,从而导致 0 大小的文件?