Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 绑定的领域数据库,但结果集为空_Ios_Swift_Realm - Fatal编程技术网

Ios 绑定的领域数据库,但结果集为空

Ios 绑定的领域数据库,但结果集为空,ios,swift,realm,Ios,Swift,Realm,我试图在我的项目中加载绑定的领域数据库,但我的结果集只是空的。我在Realm Studio中生成了绑定的DB: 将其复制到项目并添加到目标。我创建了一个领域对象,如下所示: class StopRealm: Object { @objc dynamic var stop_id = 0 @objc dynamic var stop_code = "" @objc dynamic var stop_name = "" @objc dynamic var stop_

我试图在我的项目中加载绑定的领域数据库,但我的结果集只是空的。我在Realm Studio中生成了绑定的DB:

将其复制到项目并添加到目标。我创建了一个领域对象,如下所示:

class StopRealm: Object {

    @objc dynamic var stop_id = 0
    @objc dynamic var stop_code = ""
    @objc dynamic var stop_name = ""
    @objc dynamic var stop_desc = ""
    @objc dynamic var stop_lat = 0.0
    @objc dynamic var stop_lon = 0.0
    @objc dynamic var location_type = 0.0
    @objc dynamic var parent_station = ""

}
我试着像这样加载数据库:

let config = Realm.Configuration( fileURL: Bundle.main.url(forResource: "StopsRealm", withExtension: "realm"), readOnly: true)
        let realm = try! Realm(configuration: config)
        let results = realm.objects(StopRealm.self)
        print(results)
let stop_id = RealmOptional<Int>()
    @objc dynamic var stop_code: String? = nil
    @objc dynamic var stop_name: String? = nil
    @objc dynamic var stop_desc: String? = nil
    let stop_lat = RealmOptional<Double>()
    let stop_lon = RealmOptional<Double>()
    let location_type = RealmOptional<Int>()
    @objc dynamic var parent_station: String? = nil
然而,这给我留下了一个空的结果集。有没有办法解决这个问题

更新:

将类名更改为“StopsRealm”有效,并使用Realm Studio中的“保存模型定义”,我的模型应如下所示:

let config = Realm.Configuration( fileURL: Bundle.main.url(forResource: "StopsRealm", withExtension: "realm"), readOnly: true)
        let realm = try! Realm(configuration: config)
        let results = realm.objects(StopRealm.self)
        print(results)
let stop_id = RealmOptional<Int>()
    @objc dynamic var stop_code: String? = nil
    @objc dynamic var stop_name: String? = nil
    @objc dynamic var stop_desc: String? = nil
    let stop_lat = RealmOptional<Double>()
    let stop_lon = RealmOptional<Double>()
    let location_type = RealmOptional<Int>()
    @objc dynamic var parent_station: String? = nil
let stop\u id=RealmOptional()
@objc动态var stop_代码:字符串?=无
@objc动态变量停止_名称:字符串?=无
@objc动态变量停止\u说明:字符串?=无
让我们停止
让我们停止
let location_type=RealmOptional()
@objc动态var父站:字符串?=无

类命名似乎不匹配:“StopsRealm”与“StopRealm”。

类命名似乎不匹配:“StopsRealm”与“StopRealm”。

你说得对!我收到错误:“Domain=io.realm Code=1”以下更改无法在仅添加的架构模式下进行:-属性“StopsRealm.stop\u id”已成为必需属性。-属性“stopsrelm.stop\u code”已成为必需属性。-属性“stopsrelm.stop\u name”是必需的。-属性“StopsRealm.stop_desc”已成为必需属性。-属性“StopsRealm.stop_lat”已成为必需属性。-属性“stopsrelm.stop_lon”已成为必需属性。-属性“stopsrelm.location\u type”是必需的。-属性“stopsrelm.parent_station”已成为必需属性。因此,既然您的代码模型被命名为数据库中的模型,那么属性类型之间就存在冲突。当类属性在数据库中实际上是可选的时,您应该显式地将它们声明为可选的。另一个问题,我看到有人建议您在发布应用程序之前压缩db,Realm Studio的捆绑db是否已经压缩了?我建议过这样做吗?:)你的数据库有多大?不是像你那样的“你”,而是一般的;o) 我的realmDB大约是12MB你说得对!我收到错误:“Domain=io.realm Code=1”以下更改无法在仅添加的架构模式下进行:-属性“StopsRealm.stop\u id”已成为必需属性。-属性“stopsrelm.stop\u code”已成为必需属性。-属性“stopsrelm.stop\u name”是必需的。-属性“StopsRealm.stop_desc”已成为必需属性。-属性“StopsRealm.stop_lat”已成为必需属性。-属性“stopsrelm.stop_lon”已成为必需属性。-属性“stopsrelm.location\u type”是必需的。-属性“stopsrelm.parent_station”已成为必需属性。因此,既然您的代码模型被命名为数据库中的模型,那么属性类型之间就存在冲突。当类属性在数据库中实际上是可选的时,您应该显式地将它们声明为可选的。另一个问题,我看到有人建议您在发布应用程序之前压缩db,Realm Studio的捆绑db是否已经压缩了?我建议过这样做吗?:)你的数据库有多大?不是像你那样的“你”,而是一般的;o) 我的realmDB大约是12MB