gpt4 book ai didi

ios - 无法在 iOS 8 问题中将 ToFile 写入 FullPath

转载 作者:行者123 更新时间:2023-11-29 12:36:43 25 4
gpt4 key购买 nike

我有一个问题,我无法在 iOS 8 中保存,而它在 iOS 7 中运行良好。请问我的问题在哪里?

.h       
NSMutableArray *selected;


.m
- (void)saveSelected
{
if (![selected writeToFile:[SettingVO toFullPath:@"selected"] atomically:YES])
{
NSLog(@"Could not save selected!!! %@", selectedParitems);
}
}

更新:我已经包含了 toFullPath 方法并且我调试了它。我发现在 iOS 7 中它没有传递 throw if fileMgr 并且工作正常而在 iOS 8 中它返回 nil。我希望这会有所帮助。

+ (NSString *)toFullPath:(NSString *)path
{
NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
NSURL *url = [NSURL fileURLWithPath:bundlePath];
NSMutableArray *components = [NSMutableArray arrayWithArray:[url pathComponents]];
[components removeLastObject];
[components addObject:@"Documents"];
[components addObject:@"data"];

NSString *fullPath = [NSString pathWithComponents:components];

NSFileManager *fileMgr = [NSFileManager defaultManager];
if ( ![fileMgr fileExistsAtPath:fullPath isDirectory:NULL] )
{
if ([fileMgr createDirectoryAtPath:fullPath withIntermediateDirectories:NO attributes:nil error:nil])
{
//--N-SLog(@"+ Items directory created.");
}
else
{
//--N-SLog(@"- Couldn't create Items directory!!!");
return nil;
}
}

return [fullPath stringByAppendingPathComponent:path];
}

最佳答案

如果你想找到一个可写的位置,不要使用包路径。这指向应用程序,它是只读的。

使用...

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [paths firstObject];
if (path) {
// ...
}

...获取基本文档路径。

关于ios - 无法在 iOS 8 问题中将 ToFile 写入 FullPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26120136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com