繁体   English   中英

可以同时从应用程序包和文档文件夹中读取plist吗?

[英]Is possible to read plist from application bundle and documents folder at the same time?

是否可以?从我的本地包中读取,同时也从文档文件夹中读取到UItableview中?

谢谢,谢谢

是的。

不-因为在iPhone中不是多核,所以不能同时使用:p

是的-因为您可以在同一时间段内打开多个文件。 只要文件不同就不会有冲突(如果文件相同,则取决于其他人如何使用和锁定文件等)。

在viewDidLoad或类似的事件上,当您要填充表数据时,您只需将两个文件聚合在一起...也就是说,您很可能会用相关文件的内容填充数组或字典...因此使用数组/字典的可变版本,将其初始化为空,然后从您选择的任何位置读取第一个文件,然后填充到可变数组/字典中,然后对下一个文件执行相同的操作。 完成后,像平时阅读一个文件一样,像往常一样重新加载数据。

就同​​步而言,技术上没有。 但是,可能会有两个不同的活动线程,每个活动线程都读取所需的文件并解析数据。

关于您要访问的文件...

这是我在一个项目中使用的一种快速而肮脏的方法(此刻我恰好在进行此工作):

NSFileManager* fileManager = [NSFileManager defaultManager];
NSError* error;
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
self.documentsDirectory = [paths objectAtIndex:0];
self.blahDBPath = [self.documentsDirectory stringByAppendingPathComponent: @"blah.db"];
NSLog(@"Mainbundle Resourcepath: %@", [[NSBundle mainBundle] resourcePath]);
NSString* defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"blah.db"];
NSLog(@"Default DB Path: %@", defaultDBPath);
success = [fileManager copyItemAtPath:defaultDBPath toPath:self.blahDBPath error:&error];
if (!success) {
    NSAssert1(0, @"blah blah blah '%@'.", [error localizedDescription]);
}

这是丑陋但有效的。 重构应用程序时,我将对其进行重写。

这里的重点是我要求操作系统提供某些目录的路径。 然后,根据需要添加文件名或子目录。 这使操作系统可以管理路径(例如在模拟器中,每个连续的构建都将新的唯一ID作为其路径的一部分),而我只担心应用程序中的最终目录和文件名。 我有一个路径,我从bundle目录中复制所需的文件,并将它们放在某个位置,在这种情况下为Documents目录。 然后,我可以和他们一起做任何我想做的事情。 如果我只想按它们在bundle目录中的方式访问它们,那么II只需使用[[NSBundle mainBundle] resourcePath]对其进行引用。

认为您正在寻找与上述片段类似的东西。

-isdi-

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM