2 つの iPhone アプリケーションを作成した場合、それらの間でカスタム データ (連絡先などではない) を共有するにはどうすればよいですか?
ありがとう!
2 つの iPhone アプリケーションを作成した場合、それらの間でカスタム データ (連絡先などではない) を共有するにはどうすればよいですか?
ありがとう!
これについては、2 つの異なる方法があります。
1) 共有する必要があるデータは永続的ではありません。つまり、何かを実行できるデータを使用して 1 つのアプリケーションを起動する必要があります。この場合、アプリケーションごとに特別な URL スキームを登録します。
URL スキームの詳細については、Craig Hockenberry の[編集済み] ブログ投稿を参照してください。
2) 共有する必要があるデータは永続的です。つまり、両方のアプリケーションが読み書きできるデータ ファイルのようなものが必要です。私の知る限り、データをリモート サーバーに保存する以外にこれを行う安全な方法はありません。データ接続なしでアクセスできるデータが必要な場合は、個々のアプリとリモート サーバーの間でデータを同期する方法を見つける必要があります。
すでに述べたことに加えて、コード署名に関する iPhone のドキュメントは、同じ ID で署名されたアプリケーションが同じキーチェーン項目にアクセスできることを暗示しているようです。比較的少量のデータ (パスワードなど) を保存する必要がある場合、これは便利な手法です。
アプリはiCloud上のコンテナディレクトリを共有できます。
iCloudエンタイトルメントの設定に関するAppleのドキュメントから:
「iCloudコンテナ」フィールドは、アプリがユーザーのiCloudストレージでアクセスできるコンテナディレクトリのリストを識別します。(このフィールドは、com.apple.developer.ubiquity-container-identifiersエンタイトルメントに対応します。)このリストに追加する文字列は、チームによって作成されたアプリのバンドルIDに対応している必要があります。Xcodeは、現在のアプリのバンドルIDを使用して最初の文字列を指定します。複数のアプリでメインコンテナディレクトリを共有する場合は、これを別のバンドル識別子に変更できます。チームの他のアプリのバンドル識別子を追加することもできます。
Dan Grisbyの最新のモバイル果樹園ポッドキャストでは、カスタムの名前付きクリップボードを使用してアプリ間で情報を共有することもできると仮定しています。これは古い投稿だと思いますが、グーグルの結果が高いので指摘したいと思いました。:)
NSUserDefaults
(ドキュメントは、それがここで役立つかもしれないことも示唆していますが、実際にはそうではないことを他の場所で読んだことがあります。)
私が考えることができるハックは、 API を使用して Address Bookに書き込みおよび読み取りを行い、利用可能なフィールドにデータを保存することです (+ ユーザー画像の NSData 変換)。編集:連絡先の表示画像内のオブジェクトの NSData 変換と保存を正常に実装したため、連絡先アプリケーションから編集できなくなりました。