0

背景: iPad データベース (コア データを使用) を作成しました。現在、このデータベースに DropBox へのアップロード/ダウンロード機能を提供する作業を行っています。DropBox の Web サイトに記載されているすべての手順に従ったところ、DropBox へのアップロードと DropBox からのダウンロードに成功しました。

問題: ファイルが DropBox (「dataBase.sqlite」と呼ばれる) からダウンロードされた後、アプリが更新されず、ダウンロードしたファイルのデータが表示されません。しかし、HOMEボタンをダブルタップしてアプリを閉じてアプリを再起動すると、すべてのデータが正しく表示されるようになりました。

ダウンロードが完了したら、アプリをシャットダウンして再起動することなく、iPad でデータを更新/表示したいと考えています。どんな提案でも大歓迎です。

試した:[managedObjectContext reset];

そして試しました:

managedObjectContext=nil;
managedObjectModel=nil;
persistentStoreCoordinator=nil;

以下を使用しています: XCode 4.4.1 Mountain Lion 10.8 DropBox SDK

4

3 に答える 3

1

最後に、次のようにしてこれを機能させました。

  1. コーディネーターとファイルマネージャーからpersistentStoreを消去しました(ファイルのダウンロード前)
  2. 新しいファイルをダウンロードしました
  3. 再作成されたpersistentStore
  4. FetchedResults

どうも

于 2012-08-14T16:47:22.940 に答える
0

すでにこれを試したことがあるかもしれませんが、データベースファイルの新しいバージョンがダウンロードされたことを検出し、それをコアデータ構造に処理した後、覚えています[tableView reloadData]か?

于 2012-08-13T22:57:50.243 に答える
0

あなたの質問は私を当惑させます。

データバインディングを含むWPFの考え方から推論しているようです。データソース (nsmanagedobject のようなコア日付オブジェクトではありません) をリセットしますが、table.datasource で設定されたオブジェクトをリセットします。

テーブルが managedObjectContext から直接データを取得すると想定しているようです。それは私が知らないiOの機能であるか、あなたは大きなコーナーを切り開いています。

データを取得する場所 (ほとんどの場合は managedObjectContext) を認識し、これを UITableView で使用できるようにする UITableviewDatasource に準拠するオブジェクトを実装する責任があります。

上記のDropboxからのダウンロードの後、最小限、UITableviewにリロードを送信する必要があります

[table reloadData];

ほとんどの場合、データを「再フェッチ」する必要があることをデータソース オブジェクトにも知らせる必要があります。(オプションで、これはアクセスごとに更新されるライブ接続です)。

于 2012-08-13T23:03:12.227 に答える