問題タブ [uimanageddocument]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
313 参照

ios - UIManagedDocument および「この NSPersistentStoreCoordinator には永続ストアがありません」エラー

UIManagedDocument を使用して、構築中のアプリケーションでコア データ スタックを設定しようとしています。init メソッドにこれを持つオブジェクト DocumentController があります。

次に、ブロック内のドキュメントにアクセスできるようにする performWithDocument を呼び出すこのブロック メソッドを取得しました。ブロックは次のように定義されます。

メソッドは次のようになります。

とにかく、新しいエンティティを挿入しようとすると、アプリが数秒後に(保存しようとすると)クラッシュし、タイトルにエラーメッセージが表示されます。UIManagedDocument がコア データ スタックを処理していると思ったときに、問題を修正する方法がわかりません。誰にも指針がありますか?

0 投票する
1 に答える
233 参照

objective-c - UIManagedDocument と追加コンテンツ

私はドキュメントベースのアプリを持っています(それぞれが独自のコアデータ永続ストアを持つ複数のドキュメント)。使っUIManagedDocumentて開発しています。

各ドキュメントは図面であり、各図面のプレビュー ( ) を保存できるようにしたいと考えていますUIImage

すべてのプレビューで scrollView を表示したいので、プレビューをデータベース内に配置するべきではないと思いUIManagedDocumentます。

いくつか質問があります。

  • パラメータ「absoluteURL」はどのような用途に使用され additionalContentForURL:error:ますか? リンクした例では使用されていません。

  • ドキュメントを開かずにプレビューを取得するにはどうすればよいですか? 現在、私はこれをやっています:

.

...しかし、これが最善の方法であるかどうかはわかりません。

0 投票する
2 に答える
150 参照

ios - CoreDataのスレッドエラー

サーバーと通信し、コアデータに保存するアプリを開発しています。

appDelegateで、シングルトンオブジェクトを起動し、useDocumentを呼び出してUIManagedDocumentを初期化しました。

サーバーからデータを受信したときのコードは次のとおりです。

コアデータに書き込むコードは次のとおりです。

問題は、コアデータが自動保存を試みると(約30秒間待機)、アプリがクラッシュして次のエラーが発生することです。

GCDを使用してメインスレッドで「useDocument」と「createUser」を呼び出し、UIDocument「contentsForType」をオーバーライドして、自動保存の直後に発生し、保存前のドキュメントの状態が正常であり、永続ストアファイルも作成されるようにしました。

  • 誰かが同じような状況に遭遇しますか?どんな助けでも大歓迎です!!
0 投票する
1 に答える
443 参照

ios - UI(Managed)DocumentがNSMetadataQueryではなくURLForUbiquityContainerIdentifier + Pathを介してすでにiCloudにあるかどうかを確認しますか?

私は( UIManagedDocumentとして) 1つの単一のCore Dataデータベースを備えた非常にシンプルな靴箱スタイルのiOSアプリを持っており、iCloudサポートを追加しようと考えました。


もちろん、起動時に新しいUIManagedDocumentを作成したり、保存したり開いたりする前に、クラウドに既存のデータベースが存在するかどうかを確認する必要があります。

はすでにファイル名を知っていて、ドキュメントが1つあるか、まったくないことを知っているので、必要な場合は実際には取得できませんでした

  1. 正確なファイル名の述語を使用してNSMetaDataQueryを開始し、結果からfileURLを 取得て(明示的にダウンロードしますか?)、存在する場合はそれを開きます。

  2. URLForUbiquityContainerIdentifierから作成されたものと追加して使用するだけ[[NSFileManager defaultManager] fileExistsAtPath:self.iCloudDBURL] ですか?このURLはローカルURLのみであり、「実際の」クラウドを自動的にチェックしませんか?iCloudDBURL


UIManagedDocumentの使用は、この種のアプリにとって「正しい」方法ではないかもしれないことは知っていますが、もっと簡単だと思い、試してみることができました。

0 投票する
2 に答える
737 参照

iphone - UIManagedDocumentとコアデータ

私はこれらのスタンフォードのチュートリアルhttps://itunes.apple.com/us/course/ipad-iphone-app-development/id495052415を見つけ、コアデータについての講義を聞いています。これは本当に素晴らしいことです。

コアデータにアクセスする方法を示しています...どこにも設定されていないため、どのモデルを使用する必要があるUIManagedDocumentかがわかりません。UIManagedDocument

を使用するときに要約すると、使用UIManagedDocumentするデータベースモデルをどのように定義しますか?

0 投票する
0 に答える
89 参照

iphone - 状態が UIDocumentStateSavingError の場合にコア データ ドキュメントを復元する方法。

コアデータのリポジトリとしてファイルを使用しています。それを開こうとすると、ドキュメントの状態が整数 5 に設定されて失敗します (UIDocumentStateSavingError & UIDocumentStateClosed)。エラーを解決するか、ドキュメントを強制的にそのまま開くことによって、そのようなドキュメントを回復するにはどうすればよいですか。

0 投票する
1 に答える
96 参照

ios - appdelegate とビュー コントローラーでアクセスされる同じデータベース間の整合性

私は最近 Core Data と UIManagedDocument を扱っていて、いくつか質問があります。

UIManagedDocument を開く UITableViewController があります。ここで、情報を tableViewCotroller にダウンロードし、その情報をデータベースに保存して、テーブルビューを更新します。ホームボタンからメイン画面に入り、アプリを再度開くと、データベースのデータを appdelegate で操作したいと考えています。したがって、appdelegate の適切なメソッドで、データベースを開き、必要なエンティティを取得して、必要なオブジェクトのプロパティを変更します。これでうまくいきました。なんとかデータベースを開き、データベースから必要なオブジェクトを取得しました。

私の問題は、appdelegate でデータベースからデータを変更したときに発生します。appdelegate メソッドが完了した後、同じデータベースから tableview のデータを再取得しようとしましたが、この時点では、appdelegate で呼び出されたメソッドで行われた変更がデータベースに登録されていないためです。appdelegate 内で変更が行われた直後に、UIManagedDocument のメソッドを上書きするために saveToURL を呼び出してみました。また、managedobjectcontext で save: メソッドも試しました。データベースが更新されるように変更を保存する正しい方法は何ですか?

Ps: これは iPad で書いているので、コードをアップロードできませんでした。後でアップロードします。

ありがとう

0 投票する
0 に答える
146 参照

core-data - SaveToURL の UIDocumentStateSavingError

いくつかの変更を加えて (iCloud 経由ではなくローカルに) coredata ファイルを保存しようとしていますが、「saveToURL」メソッド完了ハンドラーが呼び出されません。デバッガーを使用すると、ファイルの状態が UIDocumentStateSavingError であることがわかりました。ドキュメントには説明がありません。このエラーは何であり、どこから来たのですか。提案/ベストプラクティスまたは手がかりはありますか?

ありがとう

0 投票する
2 に答える
2589 参照

ios - すでに開いているときにUIDocumentopenWithCompletionHandlerが呼び出されないようにする

次のメソッドを持つシングルトンクラス(DTTSingleton)があります。

そして、私のUITableViewControllerには、viewDidLoadメソッドに次のコードがあります。

実行すると、次のエラーが発生します。

キャッチされなかった例外'NSInternalInconsistencyException'が原因でアプリを終了しました、理由:'すでに開いているか、元に戻す操作が実行中のドキュメントを開こうとしたか、元に戻しました

このエラーが発生する理由を理解しています。これは、別の開くプロセスがすでに実行されているときにドキュメントを開こうとしているためです。だから私の質問は...

1)openWithCompletionHandlerが1回だけ呼び出されるようにするにはどうすればよいですか?

2)ドキュメントが開いたら、2番目のブロックが確実に実行されるようにするにはどうすればよいですか?

助けてくれてありがとう!

0 投票する
1 に答える
742 参照

core-data - iOS5.1openWithCompletionHandlerが成功しない

iOS6.0アプリを5.1との互換性を取り戻そうとしています。明らかなこと(自動レイアウトなど)をオフにしましたが、奇妙な段階でスタックしています。

私のアプリはXMLソースからデータを取得し、それをコアの日付構造に配置します。iOS 6では、これは完全に機能します。iOS 5では、ここでスタックします

self.datastorageを見ると、それは私が期待するものです(閉じた管理ドキュメント)fileURL:file:// localhost / ..... /Library/Application%20Support/iPhone%20Simulator/5.1/Applications/E3E9192D-2DFE -4882-9041-00A1DF9E98D6 / Documents / Default%20Database documentState:[クローズ]

編集:実際にはiOS5.0または6.0以降で正常に動作します。私の問題は、純粋にiPhoneシミュレーターで実行されるiOS5.1にあります。これはシミュレーターのバグでしょうか?閉じたUIManagedDocumentを開いたり、存在しないファイルを作成したりすることはありません。

完全を期すための完全なコードは次のとおりです。

ありがとう