我将一些文件存储在iOS应用程序的Library目录中,使用以下方法构建它.最后,我可以调用[MyClass dataDirectory]我的文件处理,一切都很顺利.然而,我最近发现,一些文件似乎神秘地消失在这个目录之外.根据文件,情况并非如此.这是存储持久文件的安全位置吗?
该目录的控制台输出是: ~/var/mobile/Containers/Data/Application/{id}/Library/Data
+ (NSString*)libraryDirectory
{
return [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
}
+ (NSString*)dataDirectory
{
NSString* dir = [[self libraryDirectory] stringByAppendingPathComponent:@"Data"];
BOOL isDir=NO;
NSError * error = nil;
NSFileManager *fileManager = [NSFileManager new];
if (![fileManager fileExistsAtPath:dir isDirectory:&isDir] && isDir)
{
[[NSFileManager defaultManager] createDirectoryAtPath:dir
withIntermediateDirectories:YES
attributes:nil
error:&error];
}
[self addSkipBackupAttributeToItemAtURL:[NSURL fileURLWithPath:dir isDirectory:YES]];
if (error != nil) {
DDLogError(@"Fatal error creating ~/Library/Data directory: %@", error);
}
return dir;
}
Run Code Online (Sandbox Code Playgroud)
和跳过方法:
+ (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
if ([[NSFileManager defaultManager] …Run Code Online (Sandbox Code Playgroud) 我希望我错了,但我不认为这是可能的.在"本地和推送通知编程指南"的"准备自定义警报声音"下,它说"声音文件必须位于客户端应用程序的主包中".
如果你不能写入主包,那么如何让用户生成的录音(使用AVAudioRecorder)作为警报声播放?
一方面它似乎是不可能的,但另一方面我认为有应用程序可以做到这一点(我会寻找那些).