核心数据没有保存任何东西,但没有出错?

时间:2013-02-25 11:31:42

标签: ios objective-c core-data

我正在尝试重新创建我能找到的绝对最简单的Core Data示例,而且我仍然遇到了问题。看来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文件。

我做错了吗?这段代码几乎被复制和粘贴,所以我真的不知道我做错了什么。

1 个答案:

答案 0 :(得分:2)

我无法在代码中找到保存更改的任何内容。它应该像

 if (![myMO save:&error]) {
    NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
 }

请参阅此链接以获取更多帮助

  1. http://developer.apple.com/library/ios/#documentation/DataManagement/Conceptual/iPhoneCoreData01/Introduction/Introduction.html
  2. http://www.raywenderlich.com/934/core-data-on-ios-5-tutorial-getting-started
  3. https://blog.stackmob.com/2012/11/iphone-database-tutorial-part-1-learning-core-data/