見つけた中で最も単純なCoreDataの例を再現しようとしていますが、それでも問題が発生しました。SQLiteデータベースは私のエンティティに沿って作成されているようですが、実際のデータは追加されていません。これが私の.hファイルです:
#import <CoreData/CoreData.h>
#import "AppDelegate.h"
@interface MainViewController : UIViewController
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
- (IBAction) createDatabase;
@end
そして、これが私の.mです。
#import "MainViewController.h"
@implementation MainViewController
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (IBAction) createDatabase
{
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
_managedObjectContext = [appDelegate managedObjectContext];
NSManagedObject *myMO = [NSEntityDescription insertNewObjectForEntityForName: @"Book" inManagedObjectContext: _managedObjectContext];
[myMO setValue: [NSNumber numberWithInt: 123] forKey: @"bookID"];
[myMO setValue: @"Example book." forKey: @"book"];
[myMO setValue: @"Example author." forKey: @"author"];
[myMO setValue: @"Example category." forKey: @"category"];
[myMO setValue: [NSNumber numberWithBool: NO] forKey: @"isLiked"];
[myMO setValue: [NSNumber numberWithBool: NO] forKey: @"isDisliked"];
}
@end
何が間違っているのか理解できません。Xcodeは、起動時にアプリのDocumentsディレクトリに.sqliteファイルを作成しますが、ボタンを押して呼び出すcreateDatabase
と、テキスト(「サンプルブック」)などがSQLiteファイルに入力されません。すべて。
私は何か間違ったことをしていますか?このコードはほとんどコピーアンドペーストされているので、何を間違えたのか本当にわかりません。