如何在coredata中创建数据库视图

时间:2018-06-11 16:55:39

标签: ios database sqlite core-data

我在核心数据中的实体中有很多字段(比如实体称为地址),例如街道,数字,城市和州。我希望用户输入一个文本字符串,以便应用程序在实体地址中搜索匹配的记录。我该怎么做?

我基本上想要一个生成的字段(搜索字段),它将是“数字,街道,城市,州”,并尝试查找记录,使此搜索字段包含输入字符串。我希望这个字段在它包含的任何字段(例如“数字”,“街道”,“城市”,“状态”)发生变化时自动更新。

我在谷歌上环顾四周,发现数据库查看事物(https://en.wikipedia.org/wiki/View_(SQL))似乎很有希望。但我找不到有关如何在核心数据中创建数据库视图的任何信息。有谁可以指点我的方向?谢谢!

2 个答案:

答案 0 :(得分:1)

我不明白你问题的某些部分,但我最初的想法是:

  

核心数据中的实体中有很多字段(比如实体是   称为地址),如街道,数字,城市和州。我想要   用户输入文本字符串,以便应用程序搜索实体   匹配的记录的地址。我该怎么做?

     

我基本上想要一个生成的字段(搜索字段)   是“数字,街道,城市,国家”,并试图找到这样的记录   此搜索字段包含输入字符串。我希望这个领域   当它包含的任何字段时自动更新(例如,   “数字”,“街道”,“城市”,“国家”)的变化。

将您的控制器(或其他对象)指定为UITextField的委托。覆盖最合适的委托方法,然后使用输入的字符串对Core Data模型执行提取查询。使用最高结果更新回调中的视图。

  

我在Google上四处寻找并发现SQL查看的东西   似乎很有希望但我找不到任何有关如何创建的信息   核心数据中的数据库视图。有谁可以指点我的方向?谢谢!

SQL视图?你在谈论数据库浏览器吗? DB Browser Lite一直为我完成这项工作 - 它允许您浏览架构,数据和执行SQL查询。打印到控制台的模型位置,然后使用OS文件浏览器导航到该位置。

在Objective-C中,控制台打印出来的内容如下:

     - (NSURL *)applicationDocumentsDirectory {
        return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
    }

Xcode每个人都没有数据库查看器。您可能知道,当您选择.xccdatamodelId文件时,可以在表视图中轻松编辑实体及其attritibute。从该文件中,您可以在图表视图中检查整个模型及其关系,就像UML快照一样。

答案 1 :(得分:1)

您可以在Address类中创建一个计算属性,并将其用于搜索。如果您更改它使用的任何属性,它将更新。

var fullAddress: String {
    return "\(number) \(street) \(city ?? "") \(state ?? "")"
}

(这里我假设城市和州是可选属性)

关于Db视图,核心数据是ORM而不是SQL数据库,所以没有视图这样的东西。