如何通过电子邮件发送 NSManagedObject

How to Email NSManagedObject

我想从我的 iPhone 应用程序中获取数据,并允许用户通过电子邮件将其发送给该应用程序的其他用户。我将应用程序数据存储为 CoreData 中的 NSManagedObjects 数组。获取此存储数据并将其转换为可以通过我的应用程序通过电子邮件发送和导入的文件的最佳方法是什么?这是数据的 NSManagedObject 子类:

import Foundation
import CoreData

class People: NSManagedObject {

    @NSManaged var days: AnyObject
    @NSManaged var dayZero: Date
    @NSManaged var firstName: String
    @NSManaged var gender: String
    @NSManaged var lastName: String

}

获取此存储数据并将其转换为可通过电子邮件发送和由我的应用程序导入的文件的最佳方法是什么?

你的问题很宽泛,所以这只是一个高层次的回答。

要通过电子邮件发送数据,您需要将数据作为附件添加到电子邮件中。由于您希望此附件可用于您的应用程序(并且可能仅用于您的应用程序),因此您需要定义自己的自定义文件扩展名、UTI 和 mime 类型。

您需要将托管对象转换为可以附加到电子邮件的 Data。有许多可能的方法可以做到这一点。最简单的是使用 NSKeyedArchiver.

从托管对象获得数据后,使用 MFMailComposeViewController。使用您的自定义扩展名将数据作为附件和正确的文件名添加。

您需要配置您的应用程序以处理您的自定义文件类型,以便当用户在其 iOS 设备上的邮件应用程序中选择附件并且安装了您的应用程序时,您的应用程序是打开的选项邮件附件。

实施正确的 UIApplicationDelegate 方法来处理传递的电子邮件附件。从 URL,将其加载到 Data 对象并使用 NSKeyedUnarchiver 检索原始数据。

这个谜题有很多单独的部分。每个问题都在此处或通过 Google.

的其他问题和答案中进行了更详细的介绍。