問題タブ [nsmanagedobjectcontext]
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.
iphone - ManagedObjectContext は保存後に変更されたようで、他の ViewController では変更できません
AppDelegate クラスで作成された MOC があります。RootView に MOC プロパティがあり、AppDelegate によって次のように設定されます。
この rootView は、ある時点で ModalView を作成し、そこにも同じ方法で MOC プロパティを設定します。
すべて正常に動作します。新しい管理対象オブジェクトを作成でき、ビューはそれらにアクセスして削除できます。
ポイントまで[self.managedObjectContext save:&error](アプリがバックグラウンドに移動するときの AppDelegate クラスで)。
この後、rootView で新しいマネージド オブジェクトを作成すると、次のようなモーダル ビューでこの新しいオブジェクトを削除できません。[self.managedObjectContext deleteObject:managedObject]
アプリがクラッシュします。コンソールに次のようなエラー メッセージが表示されることがありました: NSManagedObjectContext は他のコンテキストのオブジェクトを削除できません。
そのため、保存後にMOCが何らかの形で変更されたようです。
そこで何が起こっているのか、何を見逃したのか。
iOS4.1を使用しています。
Thxと乾杯、
ベン
cocoa-touch - NSManagedObjectContext 依存性注入で何が間違っていますか?
Marcus Zarraが推奨する NSManagedObjectContext 依存性注入を使用しようとしています。AppDelegateで MOC を作成し、それを保持プロパティとして各ビュー コントローラーに渡しています。
通常、これはうまく機能しているように見えますが、NSFetchedResultsController を介してデータを表示するモーダル テーブル ビュー コントローラーでは、アプリが起動されたときにデータベースにあったものしか表示されません。つまり、ユーザーが実行時にデータを追加すると、データはデータベースに正しく追加されますが、モーダル ViewController が開かれ、NSFetchedResultsController が (注入された NSManagedObjectContext を使用して) 作成されたときに表示されません。ただし、アプリを閉じて再起動し、モーダル ビュー コントローラーを開くと、前のセッションで追加されたデータが表示されます。
NSFetchedResultsController を作成する前に、何らかの方法で MOC を更新する必要がありますか? 新しいユーザーデータが入力された後、モーダルView ControllerとNSFetchedResultsControllerが作成され、フェッチが実行されていることは間違いありません。
iphone - MOC が更新された後、CoreData は障害を解決できませんでした - 解決方法は?
私はiPhone開発に不慣れで、Core Dataでこの問題を抱えています。
現時点では、私のアプリは次のように動作します:
Core Data からのフェッチを実行しており、TableView にオブジェクトのリストを表示しています
新しいスレッドを切り離し、アドバイスに従って新しい MOC を作成し、
xml を取得して解析し、Core Data を消去して xml からの新しいデータを入力します。
MOC を保存しています。
ユーザーが MOC の保存中に TableView をスクロールしていない場合は正常に動作しますが、スクロールしている場合、このエラーが発生し、アプリケーションがクラッシュします。
なぜそれが起こっているのか、どうすれば問題を解決できるのか、誰でも簡単な英語で説明できますか.
どうもありがとう。
iphone - NSFetchedResultsController / NSManagedObjectContextのすべてのエントリを取得するにはどうすればよいですか?
私はコアデータで動作する素晴らしいiPhoneアプリを持っています。さまざまなチュートリアルで説明されているように、NSFetchedResultsController/NSManagedObjectContextを使用します。
次に、アプリを拡張して、さらにいくつかの機能を追加したいと思います。データからの情報を持つオブジェクトで配列を構築する必要がある問題。
どういうわけか、自分のコンテキストにあるすべてのデータのリストを取得する必要があります。
UITableViewのデータを取得するのと同じようなアプローチをとることができると思いました。
私は実際に複数のセクションを持っているので、これは失敗します。これで、すべてのセクションを調べて、次のコマンドでデータにアクセスするための独自のIndexPathを作成できました。
しかし、私がまだ見つけていない別の方法があると思います。誰かがここで私を助けてくれることを願っています。
どうもありがとう。
iphone - データベースへのコアデータの保存が機能しない
私はiPhoneのCoreDataユーザー/学習者としては初めてですが、これ[managedObjectContext save:$error]はPersistantStoreへの変更を保存するために使用されたと思いました。
しかし、リロードしてNSFetchを呼び出すと、オブジェクトはまだそこにあります。なぜ何かアイデアはありますか?
objective-c - NSManagedObjectContext CoreData デバイス/シミュレーターの違い
私は比較的新しい iPhone 開発者であり、CoreData がどのように機能するかを理解するためにアプリケーションを構築しようとしています。
何かが保存されているかどうかを検出できるようにする機能を実装しようとしています。そうであれば、それらのオブジェクトを削除するオプションをユーザーに提供します。
シミュレーターとは対照的に、デバイスでデータを取得するときに考慮すべきタイミングの問題があるかどうか疑問に思いました。
XCode ウィザードを使用して単純なコア データ アプリを作成し、UITableViewController クラスを使用していくつかのデータを表示しました。
RootViewController クラスから次のコード スニペットがあります。
このコードを (以前にストアに追加した) シミュレーターで実行すると、obj.count にゼロ以外の値が返されますが、デバイスで実行すると、以前に追加した場合でも obj.count は常にゼロになります。店舗。
私が間違っているかもしれないアイデアはありますか?
おそらく、私が達成しようとしていることに対する私の全体的なアプローチは間違っています......
iphone - managedObjectContextをUITabBarControllerのビューに渡します
ユーティリティテンプレートに基づくアプリがあります(ビューをめくって別のテンプレートを表示します)。最初のビューにはログイン画面があり、次にそれをめくってUITabBarスタイルのインターフェースを表示します。
ManagedObjectContextをAppDelegate(作成場所)から各タブバーのビューに渡す方法を理解するのに問題があります。
App DelegateのmanagedObjectContextはFrontLoginViewControllerに渡され、FrontLoginViewControllerはBackViewTabBarViewControllerに渡されます。
BackViewTabBarViewControllerペン先には、タブごとにUINavigationControllerを備えたUITabBarControllerがあります。
iphone - iPhone開発でオブジェクト間でデータを渡す最良の方法は?
私は iphone アプリケーションに取り組んでいますが、ビュー間で一時データを保持する最善の方法がわかりません。たとえば、サーバーに xml があり、情報を保持できるようにデータを解析してオブジェクトにします。XMLには、あるビューに表示したいデータと、別のビューに表示したい他のデータがあります。ビュー全体でデータを保持したい dataStore というクラスがありますが、それを行うための最良の iphone プラクティスは何ですか?
私は多くのオプションを検討しましたが、次のいずれかを選択できると思います。
1) dataStore をデリゲートとして使用し、アクセス可能なデリゲートにデータを保持します。
2) dataStore をシングルトン クラスとして使用し、クラスの 1 つのインスタンスのみを許可し、dataStore クラスの共有インスタンスからデータにアクセスします。
3)私は知らないが、アプリケーションコンテキストとインスタンスを介してデータを渡すAndroidの方法に精通しているNSMangedObjectContextでさえあるかもしれません。
誰かがiPhoneでのベストプラクティスを選択するのを手伝ってくれたら、私は大歓迎です.
iphone - NSManagedObjectContextのインスタンスを保存しても、変更可能な変換可能な属性は永続的に保存されません
Core Data+sqliteをデータキャッシュとして使用しています。アプリはファイルをコアデータに読み込み、コアデータを使用してアプリを実行します。保存は、NSManagedObjectContextとファイルの両方に対して行われます。ただし、Core Dataデータベースにデータを再入力せずにアプリを終了してリロードすると、-save:を使用して保存されたデータの一部(すべてではない)がデータストアに保存されないことに気付きました。
管理対象オブジェクトへの変更はすべてメインスレッドで1つのバッチで行われ、すべての変更が完了した後に-save:メッセージが送信されます。保存されていないデータは、変換可能な属性であり、コアデータオブジェクト内の唯一の変換可能な属性です。オブジェクトを保存するコードは次のとおりです。
アボート(); 呼び出されないので、-saveと仮定します。正しく呼び出されています。
関連しているとは思えませんが、このコードをメインスレッドで実行した後、別のスレッドで新しいNSManagedObjectContextを使用してNSFetchRequestを実行します。他のスレッドのコアデータに関連する他のことは何も起こりません。
変換可能な属性が保存されないのはなぜですか?
iphone - 内部 UINavigationControllers で UITabBarController を使用するときに ManagedObjectContext を共有する方法
建築に関する質問があります。私のアプリは、アプリケーション ウィンドウで TabBarController を使用します。ApplicationDelegate は managedObjectContext を作成しますが、実際には必要ありません。
TabBarController 内の各 ViewController は NavigationViewController です。各 NavigationController の最初のビュー コントローラーは、私のカスタム ビューです。すべてが Interface Builder を介してリンクされて作成されます。
では、managedObjectContext を正しい方法で渡すにはどうすればよいでしょうか。実際には、ユーザーがタブを選択するか、NavigationControllers をナビゲートするときに、データが既に存在するように、できるだけ早くデータを読み込むビューが必要です。
だから私の質問は:
- コンテキストを適切に渡すにはどうすればよいですか?
- いつ、どの方法でデータをフェッチする必要がありますか? 「viewDidLoad」または「viewDidAppear」?
すべてのアイデアをありがとう!