0

我正在制作一个笔记应用程序,但这个应用程序不会是一个传统的笔记应用程序。我公司的员工和我公司的工程师团队将使用此应用程序。笔记内容会很大,因为包含一些数学表达式。此外,文件必须以文本和 pdf 文件的形式发送到保管箱。

我想知道哪种方法是存储大数据内容的最佳方法:

1- 只需将笔记内容写入 Documents 目录中的文件(如 note1.txt)

我正在使用这个函数来写文件:

-(IBAction)writeFile:(id)sender
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *fileNameData=[NSString stringWithFormat:@"%@.txt",fileName.text];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:fileNameData];

    NSString *str = fileContent.text;

    [str writeToFile:filePath atomically:TRUE encoding:NSUTF8StringEncoding error:NULL];
} 

2-或将文件内容存储在数据库中并在用户要将便笺发送到保管箱并将此创建的文件发送到保管箱时创建文件?

我之前创建了笔记应用程序,但在这个应用程序中,文件会很大,我担心性能。

更新

我做了一些试验。我尝试使用这两种技术编写和读取相同的字符串;核心数据和文件。

从 Core Data 读取字符串大约需要 16 秒,使用 stringWithContentsOfFile 方法从文件读取大约需要 5 秒。

我知道这不是很准确的结果,但我猜 Core Data 对我来说不是很合适。如果我错了,请纠正我。

4

3 回答 3

1

那么这应该使用核心数据核心数据使用来完成,为了获得好处,请阅读这个 SO 问题为什么我应该在我的 iPhone 应用程序中使用核心数据?

我自己做了一个笔记应用程序并使用了核心数据,它运行良好。希望这可以帮助。

编辑: 或查看与数据存储指南相关的此链接。它包括 Apple 给出的所有类型的指南。

于 2013-08-02T06:39:48.810 回答
0

CoreData 会比读/写文件更快。但是,当您写入文件时,您不必担心性能。当您将文件发送到 Dropbox 时,您担心性能问题 发送频率如何?如果不是像每天一次那样频繁地这样做,那么文本文件可能是比 coredata 或 sqlite 更好的选择。

于 2013-08-02T08:03:09.807 回答
0

核心数据是设置和工作的痛苦。您是否有非常大的数据集或需要在文件之间建立实体关系?

如果不是,我将只有一个字典或数组,其中包含一个包含有关文件的元数据(上次访问时间、标题、文件位置等)的简单对象,然后我将加载此字典并在表视图中使用它来选择文件。

文件本身可以是数据目录中磁盘上的松散文件。为了提高保存的性能,只需复制字符串,然后使用 GCD 将其异步写出。当用户选择一个文件再次打开时,使用 GCD 加载它并显示一个小的进度条。如果这些文件很小,加载将接近即时。

于 2013-08-02T06:55:17.857 回答