2016-12-20 5 views
0

Я хотел бы получить данные из своего iPhone-приложения и разрешить пользователям отправлять его по электронной почте другим пользователям приложения. У меня есть данные приложения, хранящиеся в виде массива NSManagedObjects в CoreData. Каков наилучший способ взять эти сохраненные данные и преобразовать их в файл, который можно отправить по электронной почте и импортировать моим приложением? Это NSManagedObject Подкласс для данных:Как отправить сообщение 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 

} 

Что является лучшим способом принять эти сохраненные данные и преобразовать его в файл, который можно по электронной почте и импортируемого мое приложение?

ответ

0

Ваш вопрос очень широк, так что это будет только ответ высокого уровня.

Чтобы отправить данные по электронной почте, вам необходимо будет добавить свои данные в виде прикрепленного файла к письму. И так как вы хотите, чтобы это приложение было пригодным для использования с вашим приложением (и, возможно, только с вашим приложением), вам необходимо определить собственное пользовательское расширение файла, UTI и тип mime.

Вам необходимо преобразовать управляемый объект в Data, который можно прикрепить к письму. Существует много возможных способов сделать это. Самый простой способ - использовать NSKeyedArchiver.

Как только у вас есть данные из управляемого объекта, используйте MFMailComposeViewController. Добавьте данные в виде вложения и правильное имя файла, используя пользовательское расширение.

Вам необходимо настроить приложение для обработки настраиваемого типа файла, поэтому, когда пользователь выбирает вложение в приложении Mail на своем устройстве iOS, и ваше приложение установлено, ваше приложение является опцией для открытия вложения электронной почты.

Внесите надлежащий метод UIApplicationDelegate, чтобы обрабатывать передачу электронной почты. Из URL-адреса загрузите его в объект Data и используйте NSKeyedUnarchiver для извлечения исходных данных.

Есть много отдельных частей этой головоломки. Каждый из них был рассмотрен более подробно в других вопросах и ответах здесь или через Google.

+0

Чтобы добавить к этому, я бы не использовал 'NSKeyedArchiver' для этой задачи, поскольку' NSManagedObject' привязан к экземпляру 'NSManagedObjectContext'. Лучше «экспортировать» его в JSON или другой формат, а затем получатель может «импортировать» его в свой контекст. –

+0

Спасибо, объяснение этого процесса было очень полезно! – user1947112

Смежные вопросы