ドキュメントのマスター コピーをサーバーに保持し (ちなみに、これを効果的に機能させるにはサーバーが必要です)、ユーザーがローカルに保存されているドキュメントの一時的なバージョンを編集することをお勧めします。 iPhone では、変更があった場合はサーバーに常に通知され、サーバーのバージョンが変更されると (サーバーのバージョンがデバイスのバージョンと同じでない場合)、サーバーはメッセージを送信します。するかどうかを指定するために作成する特別なプロトコルを使用して
- コンテンツ (テキスト、画像など) がドキュメントに追加されます
- ドキュメントからコンテンツが削除されます
- コンテンツはドキュメントで編集されます
- ...要点がわかります
必要なのは、サーバー ドキュメントに加えられたさまざまな種類の変更をデバイスに通知するさまざまな方法だけです。これらの通知から、サーバーのバージョンに加えられた変更に応じて、ユーザーの一時ドキュメントを変更できます。完全なドキュメントを何度もダウンロードする必要はありません。ときどき (または手動のユーザー入力から)、iPhone アプリで完全なサーバー ドキュメントを要求して、iPhone で行われたすべての変更が正しいことを確認できます。
NSInputStream
s およびs を使用NSOutputStream
して、サーバーへのメッセージの送受信を行います。を使用しNSStreamDelegate
てサーバー イベントを処理します (唯一のインスタンス メソッドはイベント処理メソッドです)。このガイドは、メッセージの送信について何も知らない場合に最適な出発点です。プロトコルを保存できる s をNSData
送受信できます。NSString
プロトコルの例として、私が作成した、Windows サーバーとの間でメッセージを送受信するアプリは、次のことを行います。
- iOS アプリで送信するデータを準備するとき、最初に 4 バイトのデータを
NSData
オブジェクトに書き込みます。これには、サーバーがストリームから読み取るバイト数が正確にわかるように、進行中のデータの長さが含まれます。4 バイトを選択したのはunsigned int
、それが型のサイズであり、非常に大きな数 (したがって非常に大きなデータ サイズ) を表すことができるためです。
- オブジェクトにデータを追加し
NSData
ます。struct
私の場合、データは a の形式です。実際、相手側で解析する方法を知っている限り、あらゆるタイプのデータを送信できます。
- オブジェクトを送り
NSData
ます。
実際、メッセージの送信、受信、および解析NSStream
は非常に簡単ですが、iOS アプリ用のサーバー/クライアント コードを初めて作成する場合、そのプロセスは困難に思えるかもしれません。サーバーがメッセージを受信する準備ができているかどうか、メッセージを書き込むためのスペースがあるかどうかなども考慮する必要があるため、プロセスをかなり単純化しましたが、以前にリンクしたガイドも正しいですhereは、クライアント サーバー アプリを作成していたときに非常に役立ちました。
願わくば、これらのガイドラインが十分に一般的 (かつ適切なトピックに特化したもの) であることを願っています。