sqllite文件,显示使用coredata在ios中找不到表

sqllite文件,显示使用coredata在ios中找不到表,ios,sqlite,core-data,cocos2d-iphone,Ios,Sqlite,Core Data,Cocos2d Iphone,您好,我是一个iOS操作系统的乞丐,已经创建了我的第一个核心数据应用程序。我已经创建了我的模态并将其包含在项目中。它确实包含实体“CustomerOrder”。 储存后: NSArray *theArray = [[notification userInfo] objectForKey:@"myArray"]; NSEntityDescription *entityDesc=[NSEntityDescription entityForName:@"CustomerOrder" inManage

您好,我是一个iOS操作系统的乞丐,已经创建了我的第一个核心数据应用程序。我已经创建了我的模态并将其包含在项目中。它确实包含实体“CustomerOrder”。 储存后:

NSArray  *theArray = [[notification userInfo] objectForKey:@"myArray"];
NSEntityDescription *entityDesc=[NSEntityDescription entityForName:@"CustomerOrder" inManagedObjectContext:self.managedObjectContext];
NSFetchRequest *request=[[NSFetchRequest alloc]init];
[request setEntity:entityDesc];

for (NSDictionary * dict in theArray)
{
    NSManagedObject * newEntry =[[NSManagedObject alloc]initWithEntity:entityDesc insertIntoManagedObjectContext:self.managedObjectContext];

        [newEntry setValue:[dict objectForKey:@"customer_id"] forKey:@"customer_id"];
        [newEntry setValue:[dict objectForKey:@"ExecutedOrderCount"] forKey:@"executedOrderCount"];
        [newEntry setValue:[dict objectForKey:@"order_id"] forKey:@"order_id"];
        [newEntry setValue:[dict objectForKey:@"outletLatitude"] forKey:@"outletLatitude"];
        [newEntry setValue:[dict objectForKey:@"outletLongitude"] forKey:@"outletLongitude"];
        [newEntry setValue:[dict objectForKey:@"trigger_days"] forKey:@"trigger_days"];

        [newEntry setValue:[dict objectForKey:@"trigger_end_date"] forKey:@"trigger_end_date"];
        [newEntry setValue:[dict objectForKey:@"trigger_from_time"] forKey:@"trigger_from_time"];
        [newEntry setValue:[dict objectForKey:@"trigger_no_days"] forKey:@"trigger_no_days"];

        [newEntry setValue:[dict objectForKey:@"trigger_radius"] forKey:@"trigger_radius"];
        [newEntry setValue:[dict objectForKey:@"trigger_start_date"] forKey:@"trigger_start_date"];
        [newEntry setValue:[dict objectForKey:@"trigger_to_time"] forKey:@"trigger_to_time"];

          NSLog(@"Log %@", newEntry);

         NSError * error = nil;
        if ([self.managedObjectContext save:&error] == NO)
        {
            NSLog(@"CANNOT SAVE: %@", error);
        }
            else {
                NSLog(@"SUCCES, go check the sqlite file");
            }
        }
如果日志成功,请检查sqlite文件。但是我在sqllite文件中看不到任何表。此外,如果我获取,我将获取:

"<CustomerOrder: 0x92ba2a0> (entity: CustomerOrder; id: 0x927a8e0 <x-coredata://49FB2963-C998-4237-BB63-5D00E2B194D5/CustomerOrder/p102> ; data: <fault>)"
“(实体:CustomerOrder;id:0x927a8e0;数据:)”

您使用的是核心数据,它是苹果提供的SQLite的包装器,因此它具有ORM架构,因此它以自己的方式使用SQLite。只是与实体和其中包含的数据有关。它以自己的方式保存数据,而不是像您在SQLite中所想的那样

SQLite文件的工作和制作风格与核心数据不同,我们可以根据需要使用它。我们可以制作表格和列。但核心数据在数据库领域的工作方式完全不同

希望这对您有所帮助。

这一行:

"<CustomerOrder: 0x92ba2a0> (entity: CustomerOrder; id: 0x927a8e0 <x-coredata://49FB2963-C998-4237-BB63-5D00E2B194D5/CustomerOrder/p102> ; data: <fault>)"
“(实体:CustomerOrder;id:0x927a8e0;数据:)”
这不是一个错误。这就是核心数据的工作原理。获取对象时,在通过查找一个或多个属性值请求属性之前,不会加载其属性。在此之前,对象是一个故障


如果你打算使用核心数据,你应该了解一下它是如何工作的。这是核心数据的一个非常基本的部分。

不建议查看SQLite文件,但如果您确实愿意,可以查看。当您提取时,您会得到一个对象-那么问题是什么呢?您要确保数据库位于Documents文件夹中,它不会将任何内容写入Bundle versionNSFetchRequest fetchRequest=[[NSFetchRequest alloc]init]//正在设置要查询的实体NSEntityDescription*Entity=[NSEntityDescription entityForName:@“CustomerOrder”inManagedObjectContext:self.managedObjectContext];[FetchRequestSetEntity:entity];n错误;//使用生成的fetchRequest NSArray*fetchedRecords=[self.managedObjectContext executeFetchRequest:fetchRequest错误:&错误];查询managedObjectContext返回已获取的记录返回已获取的记录;如果我将获取的fetchedRecords记录为“(实体:CustomerOrder;id:0x927a8e0;数据:)”。我不知道它在说什么。那么如何检查我们的实体是否在托管对象上下文中创建。NSFetchRequest fetchRequest=[[NSFetchRequest alloc]init]//正在设置要查询的实体NSEntityDescription*Entity=[NSEntityDescription entityForName:@“CustomerOrder”inManagedObjectContext:self.managedObjectContext];[FetchRequestSetEntity:entity];n错误;//使用生成的fetchRequest NSArray*fetchedRecords=[self.managedObjectContext executeFetchRequest:fetchRequest错误:&error]查询managedObjectContext;NSLog(@“%@”,fetchedRecords);显示NSLOG(@“%@”,获取的记录);显示“(实体:CustomerOrder;id:0x927a8e0;数据:)”