iOS:如何重建iPhone的电子邮件应用程序?

时间:2011-08-11 10:20:50

标签: iphone ios email

我有一个包含大量私人消息(PM)的数据库。 PM可以存储在不同的文件夹中,如电子邮件(发送,收件箱,文件夹)等。 简而言之:我想在我的数据库中为我的私人消息重建iPhone电子邮件应用程序,我可以通过JSON查询获得(包装器已经实现并且工作正常)。

如何重建?

我想要的功能是PM应该存储在iphone上的一种缓存中,这样用户就可以在不使用互联网的情况下阅读它们。

任何想法,如何重建设计以及如何添加此缓存功能?

1 个答案:

答案 0 :(得分:3)

设计

Mail.app使用UINavigationController来浏览多个视图。

  • 帐户视图: UITableViewController
  • 帐户视图 UITableViewController显示UIToolbar
  • 邮件查看: UITableViewController显示UIToolbar
  • 邮件视图 UIViewControllerUIWebView(显示实际邮件)和UIToolbar组成。

缓存

您应该为您编写的每个课程实施NSCoding(类似KVMailKVAccount等)。 然后,当'数据库'被更改后,您将NSUserDefaults中的所有记录保存起来,如下所示:

NSArray *accounts;
    - KVAccount *someAccount;
        - NSArray *mails;
            - KVMail *mail;
            - KVMail *mail;
            - KVMail *mail;

假设您的设计看起来像这样(所以帐户数组,其中每个帐户都包含一系列邮件)。

实施NSCoding时,您可以像这样保存数据库:

[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:accounts] forKey:@"database"];

现在,当用户再次启动应用程序时,您可以通过执行以下操作将其重新加载到RAM中:

NSArray *accounts = [NSKeyedUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] objectForKey:@"database"]];