我正在编写的代码存在问题。
我正在编写一个iOS程序(我是一个iOS菜鸟),它基本上要求我使用快速查看框架来查看iPhone上的一些文档(* .doc,* .ppt,* .pdf等..)它们存储在数据库中(Core Data - SQLite,没有外部)。我需要以某种方式添加文件,但由于iOS实际上不允许我浏览其文件系统,因此无法在数据库中找到并保存我需要的文档。在我从数据库中获取这些文档之前,哪种方法可以阻止我需要做的其他事情。 (设置列出文件的表视图和文件的详细信息等。)
这是一个类项目所以它不需要是完美的条件,我只需要能够在我呈现项目时浏览一些文档。我可以在编码的同时添加我将要使用的所有文档,当我在演示期间使用该程序时,我不需要能够添加任何新文件。如果我不需要它,我不希望它变得更复杂。就像使用已保存的文件连接到外部数据库一样,使用php缓冲区页面连接到该数据库或类似的东西。我没有必要的服务器系统来执行该php文件。我想在手机内完成此操作。
到目前为止我能够想到的解决方案:
如果有人能告诉我另一种更简单的方法来处理这件事我真的很感激。请记住,虽然我有Java和C#的编程背景,但我仍然是一个iOS新手,而且几乎没有从表面上看。所以很可能我不知道iOS提供的东西默认情况下,我只是把我的头发拉出来。
我想是的,我希望我没有忘记任何事情。如果您需要更多细节,我将会在这里,我几乎可以立即提供。提前感谢大家的帮助。
答案 0 :(得分:0)
听起来NSFileManager会帮助你。
如果您将文档放入项目树中,它们将可供您的应用使用。使用NSFileManager将它们复制到应用程序的Documents文件夹中,例如:
- (void)placeBundleFileInDocuments:(NSString *)filename
{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *bundlePath = [[NSBundle mainBundle] pathForResource:[[filename lastPathComponent] stringByDeletingPathExtension] ofType:[filename pathExtension]];
NSString *documentsFolderPath = [NSString stringWithFormat:@"%@/", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]];
NSString *path = [documentsFolderPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", filename]];
if ([fileManager fileExistsAtPath:path])
return;
NSError *error = nil;
[fileManager copyItemAtPath:bundlePath toPath:path error:&error];
if (error) {
NSLog(@"Unable to copy file (%@).", error.localizedDescription);
}
}
然后,您可以使用NSFileManager检索有关文件的详细信息。您可能会发现此方法很有用:
- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error
我希望这有帮助!