0

私はいくつかの同様の質問を経験しましたが、これについて明確なポイントに到達する可能性があります...

applicationWillTerminateコンテキストを:に保存するだけで十分だと思いますが、コアデータのスクラッチパッドに変更を加えると、アプリケーションのメモリが増えます...?

そして、もっと頻繁に保存する必要があります。コンテキストを何度も保存すると、デバイスのフラッシュドライブの寿命が短くなることを認識しており、Appleはそれをあまり頻繁に行わないことを推奨しています。

アプリケーションが終了した場所からコアデータコンテキストアプリを忘れるシナリオは他にありますか...?

ご入力いただきありがとうございます。

4

2 に答える 2

0

アプリケーションの保存動作は、アプリケーションによって異なります。つまり、ドキュメントベースのアプリでは、ユーザーはcmd-Sを押したときにドキュメントが保存されることを期待しています。そして、あなたはそうすべきです。ますます多くのユーザーが、自動保存に使用するアプリケーションを期待しています。

保存動作は、ユーザーの観点からの設計上の選択です。ユーザーインターフェイスとインタラクションデザインによって、アプリケーションの動作が決まります。

もちろん、これらの考慮事項に加えて、技術的な現実を無視することはできません。メモリ使用量、クラッシュバグとデータ損失、元に戻る管理、バッテリーの消耗、これらすべてがアプリケーションの動作と最終的にはユーザーに影響を与えます。SSDの平均寿命はあなたが考慮すべき要素ではないと私は本当に思います。

最後の言葉:特定のストアに対して複数のオブジェクトコンテキストを持つことができます。子コンテキストを持つことができます。したがって、完全な変更バックログの代わりにデータの一部を保存でき、一部のエンティティを他のエンティティよりも優先できます...多くの実装の選択と可能な戦略ですが、それらはユーザーインターフェイスとインタラクションデザインによって決定される必要があります。彼らはしないといけない。

ユーザーにとって意味のあるときに保存します。

于 2012-06-22T10:07:59.167 に答える
-1

これは、Coredataにデータを保存する一種の方法です。

-(void) setEmailContactsToCoredata:(id)sender  
{    

        NSManagedObjectContext *context=[appDelegate managedObjectContext];

        NSManagedObject *newData = [NSEntityDescription insertNewObjectForEntityForName:@"EmailContacts" inManagedObjectContext:context];

        [newData setValue:self.emailTextField.text forKey:@"email_ID"];



        NSError *error;

       if (![context save:&error])
       {
            NSLog(@"There was an error while inserting Data into coredata");
       }
       else
       {
           NSLog(@"Success fully Saved your email id");  
       }  
}
于 2012-06-22T09:45:49.697 に答える