2016-12-20 8 views
0

私は自分のiPhoneアプリからデータを取り出し、ユーザーがそのアプリの他のユーザーに電子メールで送ることを許可したいと思います。私はCoreDataのNSManagedObjectsの配列として格納されているアプリケーションデータを持っています。この保存されたデータを取得し、アプリで電子メールでインポートできるファイルに変換するにはどうすればよいでしょうか?これは、データのための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を使用します。データを添付ファイルとして追加し、カスタム拡張を使用して適切なファイル名を追加します。

カスタムファイルタイプを処理するようにアプリを設定する必要があります。そのため、ユーザーがiOSデバイスのメールアプリケーションで添付ファイルを選択し、アプリがインストールされている場合、アプリはメール添付ファイルを開くオプションです。

適切なUIApplicationDelegateメソッドを実装して、電子メールの添付ファイルを渡す処理を行います。 URLからDataオブジェクトにロードし、NSKeyedUnarchiverを使用して元のデータを取得します。

このパズルには多くの個所があります。それぞれの質問は、ここで、またはGoogleを介して他の質問と回答で詳しく説明されています。

+0

NSManagedObjectがNSManagedObjectContextのインスタンスに結びついているので、これに追加するだけで、このタスクには 'NSKeyedArchiver'を使用しません。それをJSONや別のフォーマットに「書き出す」方が良いですし、受信側はそれをそのコンテキストに「インポート」することができます。 –

+0

両方のおかげで、このプロセスの説明はとても役に立ちました! – user1947112

関連する問題