检查核心数据iOS中的所有记录

检查核心数据iOS中的所有记录,ios,iphone,objective-c,Ios,Iphone,Objective C,我来自.NET平台,熟悉查询数据库和查看表格格式的记录。在iOS核心数据中,有任何方法可以查看实体的所有记录。我不能仅仅凭想象就感到舒适 有什么想法吗?您可以获得给定实体描述的所有对象,如下所示 例如,如果要获取所有Person对象 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Person"]; NSArray *allPersons = [managedObjectContext execute

我来自.NET平台,熟悉查询数据库和查看表格格式的记录。在iOS核心数据中,有任何方法可以查看实体的所有记录。我不能仅仅凭想象就感到舒适


有什么想法吗?

您可以获得给定实体描述的所有对象,如下所示

例如,如果要获取所有
Person
对象

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];

NSArray *allPersons = [managedObjectContext executeFetchRequest:request error:nil];

// allPersons will now contain all the Person objects stored in Core Data
但这只是你能做的事情的冰山一角

例如,如果希望在tableview中显示Person对象,则不会这样做。您需要创建一个
NSFetchedResultsController
,并将其用作表的数据源。当您有数千个结果时,这将缓存结果并最大限度地减少内存使用

在iOS核心数据中,是否有任何方法可以查看实体的所有记录

当然。至少有两种选择:

  • 如果您只是想看看它是如何工作的,那么可以检查用作数据存储的SQLite数据库文件。为此,请使用
    sqlite3
    命令行工具,或者使用诸如MesaSQLite之类的数据库前端。有一些基本规则:1)不要直接更改数据库;2) 不要对核心数据如何使用SQLite做任何假设;3) 尽量不要用表和记录来考虑核心数据存储

  • >P>如果您想关注数据存储中存储的项目,请考虑在应用程序中构建一个简单的基于表的接口。您只能在调试版本中包含它。创建UITableViewController的子类,该子类使用NSFetchedResultsController提取数据。中有示例代码


    这取决于你想用它们做什么。你只是想把它们拉成一个阵列吗?是否在表视图中显示它们?是否正在查找SQL调试模式?我只想查看它们以供参考。如果我更新了任何记录。实际上抓取更容易,但是你可以用它来查看数据库。有些应用程序允许在开发过程中访问数据库,苹果应用商店中提供的“Base-SQLite编辑器”就是我使用的。我不想在任何地方显示记录。只是为了我的理解,我想看看。