将升级应用程序重用已存在的核心数据

将升级应用程序重用已存在的核心数据

问题描述:

我已经完成了核心数据迁移,以访问我的应用程序的先前版本中的所有数据。拥有一个名为优惠券的实体并具有该实体的几个属性。但在我的新版本中,我有一个属性,“用户名”为同一个实体。现在应用程序启动时,我必须获取我在旧版本中的所有数据,并且必须使用用户名保存所有数据。如何我可以更新我的数据吗?任何建议将不胜感激。在这个版本中,我总是根据用户名获取数据。将升级应用程序重用已存在的核心数据

` NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
    [request setEntity: [NSEntityDescription entityForName:@"Coupon" inManagedObjectContext: context]]; 

    NSPredicate *newPredicate= [NSPredicate predicateWithFormat:@"username = %@", username]; 
    [request setPredicate:newPredicate]; 


    NSArray *objects = [context executeFetchRequest:request error:&error]; 
    NSLog(@"%@arry",objects); 


    NSUInteger count = [context countForFetchRequest: request error: &error]; 
    [request release]; 

    if (count ==0) { 
} 

` 目前,这里的应用程序崩溃,因为它不具备这样的attribute.So我有设置需要一个更好的解决这个predicate.Anymore细节之前添加属性?

application:didFinishLaunchingWithOptions:您可以检查迁移。如果这是在使用新数据模型升级后第一次启动应用程序,则可以先通过添加用户名属性来修改所有记录。

//first fetch all Cupons 
for (Coupon *c in fetchedObjects) { 
    c.username = whatever; 
} 
[self.managedObjectContext save:nil]; 
+0

谢谢mundi .. :) –