0

我有一个案例,我应该通过UIViewController. 我设计了我的数据库模型(实体和属性)。我正在通过UIViewController. 我应该didFinishLaunchingwithOptions在 appDelegate.m 的方法中添加什么?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch   
    return YES;
}

对于TUTViewController(我自己的视图控制器 - UIViewController),我使用下面的代码插入对象。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {

    NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
    NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity];
    NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];

    NSString *stripped1 = [response stringByReplacingOccurrencesOfString:@"\r" withString:@""];
    NSMutableArray *rows = [NSMutableArray arrayWithArray:[stripped1 componentsSeparatedByString:@"\n"]];
    NSMutableArray *contentArray = [NSMutableArray arrayWithCapacity:[rows count]]; 
    NSMutableArray *contentArray1 = [NSMutableArray arrayWithCapacity:[rows count]];

    NSArray *components;
    NSLog(@"count:%d",[rows count]);

    for (int i=0;i<[rows count]; i++) {

       if(i == 0 || [[rows objectAtIndex:i] isEqualToString:@""]){
          continue;
       }

       components = [[rows objectAtIndex:i] componentsSeparatedByString:@","];
       id x = [components objectAtIndex:0] ;
       id y = [components objectAtIndex:1];
       id z = [components objectAtIndex:2];

       [contentArray addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:x,@"X",y,@"Y", nil]];
       [contentArray1 addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:x,@"X",z,@"Y", nil]];

       [newManagedObject setValue:[x] forKey:@"timeStamp"];
       [newManagedObject setValue:[y] forKey:@"beat"];
       [newManagedObject setValue:[z] forKey:@"rate"];

       // Save the context.
       NSError *error = nil;
       if (![context save:&error]) {

           NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
           abort();

           NSLog(@"Contents of Uterus Contraction: %@",contentArray);
           NSLog(@"Contents of Heart Beat: %@",contentArray1);
       }    
    }
}

有什么我想念的吗?我以错误结束:

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“+entityForName:找不到实体名称“FetalData”的 NSManagedObjectModel

4

1 回答 1

0

您是否设置了核心数据堆栈或UIManagedDocument对象?

如果您没有设置托管对象模型,这可能是问题所在。这意味着您可能没有加载定义FetalData实体的托管对象模型。有关详细信息,请参阅insertnewobjectforentityforname

我真的建议创建一个空项目,让 Xcode 为你创建 Core Data 的东西。通过这种方式,您可以看到代码是如何工作的。

一些笔记

你为什么用一个NSFetchResultsController

在方法结束时移动save调用。通过这种方式,您可以避免多次往返磁盘。

如果你想开始使用 Core Data,我建议你core-data-on-ios-5-tutorial-getting-started

希望能帮助到你。

于 2012-05-07T08:25:53.953 回答