0

同期サービスを使用してデータをデスクトップ バージョンと同期する iPhone アプリがありますが、画像を除いてすべて正常に動作しています。

iPhone では、画像をドキュメント ディレクトリに保存し、ファイルへのパスをコア データに保存します。一時的な属性「イメージ」を設定し、同期チェック ボックスをオンにして、ID プロパティとして割り当てました。私は2つの方法を追加しました、

- (NSData *)image;
{
  NSLog(@"%@:%s entered", [self class], _cmd);
  if (image) return image;
  NSString *path = [self primitiveValueForKey:@"pathToFile"];
  if (!path) return nil;
  NSString *myPath = [NSHomeDirectory() stringByAppendingPathComponent:path];
  image = [[NSData alloc] initWithContentsOfFile:myPath];
  return image;
}

- (void)setImage:(NSData *)data
{
    NSLog(@"%@:%s entered", [self class], _cmd);
  NSString *destPath = [self primitiveValueForKey:@"pathToFile"];
  if (!destPath) {
  //Build the path we want the file to be at
  destPath = NSHomeDirectory();
  NSString  *guid = [[NSProcessInfo processInfo] globallyUniqueString];
  NSString  *fpath = [NSString stringWithFormat:@"Documents/%@", guid];
  destPath = [destPath stringByAppendingPathComponent:fpath];
  [self setValue:destPath forKey:@"pathToFile"];
  }
  [data writeToFile:destPath atomically:NO];
  [data retain];
  [image release];
  image = data;
}

- (void)willTurnIntoFault
{
  [image release], image = nil;
}

クライアント記述ファイルにイメージ属性を追加したので、ZSync デーモンに送信されるストア ファイルにデータを入れるだけだと思っていましたが、間違っています。そして、画像データは転送されません

私の質問は、これを行うことができますか? または 画像データを同期する最良の方法は何ですか?

ガイダンスをお願いします。検索して検索しましたが、解決策が見つかりません。

ありがとうございました

4

1 に答える 1

0

NSConference での Marcus Zarra のスピーチで、画像/バイナリ データの同期に関する質問がありました。

基本的に:画像が100k未満の場合は、NSDataとしてオブジェクト内に直接配置してください。

100k 以上および 1M 未満では、データを格納し、関係を介してリンクされる追加のエンティティを使用します。

1M を超えると、パスとデータがディスクに保存されます。

zsync を介した同期の恩恵を受けるのは、最初の 2 つの方法だけです。3 つ目の方法を選択する場合は、別の方法でデータを反対側に移動する必要があります。

于 2010-07-13T07:42:27.350 に答える