CoreData帮助---如何调试?

时间:2011-06-28 14:25:23

标签: objective-c core-data

我正在观看/做iTunes U Stanford iPhone课程。 (免费提供!)。我正在试图找出核心数据的狗仔队计划。

以下是我如何将数据保存到coreData中,如何验证实际保存的信息?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    FlickrFetcher *ff = [FlickrFetcher sharedInstance];

    if (![ff databaseExists])
    {
        NSString *path = [[NSBundle mainBundle] pathForResource:@"FakeData" ofType:@"plist"];
        NSArray *data = [NSArray arrayWithContentsOfFile: path];
        NSManagedObjectContext *managedObjectContext = [ff managedObjectContext];
        NSError *error = nil;

        for (NSDictionary *row in data)
        {
            Person *person = (Person *)[NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:managedObjectContext];
            Photo *photo = (Photo *)[NSEntityDescription insertNewObjectForEntityForName:@"Photo" inManagedObjectContext:managedObjectContext];

            photo.name = [row objectForKey:@"name"];
            photo.url = [row objectForKey:@"path"];
            person.name = [row objectForKey:@"user"];

            [person addPhotosObject:photo];
        }

        [managedObjectContext save:&error];
    }

1 个答案:

答案 0 :(得分:0)

在您的代码中,您可以在将error消息发送到managedObjectContext之后检查nil是否为save:,或者,该表达式的返回值是否为{{1} }}。如果是这种情况,则意味着在上下文中保存更改时没有错误。

如果您只是想手动检查(例如,在之前已经运行过代码之后),您当然可以在某些浏览器中打开SQLite数据库并检查数据是否存在。 Firefox的 SQLite Manager 扩展程序是一个不错的工具。