【发布时间】:2020-07-13 14:48:52
【问题描述】:
我正在尝试将我输入到 Realm 数据库中的所有预加载数据并在我的应用程序中使用它。我遇到的问题是我无法将所有对象加载到我的自定义类型的结果变量中。我的预加载数据库中有 530 个条目,但它们都没有显示在视图控制器中。
这些数据存储在 /Database/streetListings.realm
import UIKit
import RealmSwift
class StreetListing: Object {
@objc dynamic var houseNumber: String?
@objc dynamic var streetName: String = ""
@objc dynamic var trashDay: String = ""
convenience init(houseNumber: String?, streetName: String, trashDay: String) {
self.init()
self.houseNumber = houseNumber
self.streetName = streetName
self.trashDay = trashDay
}
}
import UIKit
import RealmSwift
class ViewController: UIViewController {
var realm: Realm!
var streetListings: Results<StreetListing>?
override func viewDidLoad() {
super.viewDidLoad()
let realmPath = Bundle.main.url(forResource: "streetListings", withExtension: "realm")!
let realmConfiguration = Realm.Configuration(fileURL: realmPath, readOnly: true)
realm = try! Realm(configuration: realmConfiguration)
streetListings = realm.objects(StreetListing.self)
}
}
(lldb) po realmPath
▿ file:///Users/raz/Library/Developer/CoreSimulator/Devices/3A4F3C1A-9C15-4AF0-B211-5125E3843075/data/Containers/Bundle/Application/B1331B06-EDFE-494C-A170-7FDB1B2CA291/NorthTrash.app/streetListings.realm
- _url : file:///Users/raz/Library/Developer/CoreSimulator/Devices/3A4F3C1A-9C15-4AF0-B211-5125E3843075/data/Containers/Bundle/Application/B1331B06-EDFE-494C-A170-7FDB1B2CA291/NorthTrash.app/streetListings.realm
(lldb) print realmConfiguration
(RealmSwift.Realm.Configuration) $R32 = {
_syncConfiguration = nil
_path = "/Users/raz/Library/Developer/CoreSimulator/Devices/3A4F3C1A-9C15-4AF0-B211-5125E3843075/data/Containers/Bundle/Application/B1331B06-EDFE-494C-A170-7FDB1B2CA291/NorthTrash.app/streetListings.realm"
_inMemoryIdentifier = nil
encryptionKey = nil
readOnly = true
schemaVersion = 0
migrationBlock = nil
deleteRealmIfMigrationNeeded = false
shouldCompactOnLaunch = nil
maximumNumberOfActiveVersions = nil
customSchema = nil
disableFormatUpgrade = false
}
(lldb) po streetListings
▿ Optional<Results<StreetListing>>
▿ some : Results<StreetListing> <0x7fbd2e607140> (
)
- rlmResults : RLMResults<StreetListing> <0x7fbd2e607140> (
)
如果有人能帮我解决这个问题,那就太好了。谢谢!
【问题讨论】:
-
如果你没有得到有用的答案又等不及了,也许可以考虑通过制作一个小项目来重现问题并将其添加到你的 Github 以便我们可以使用它。
-
我没有看到你的代码有什么问题。事实上,几乎可以复制粘贴它,因为它对我来说是正确的。路径可能有问题?除此之外 - 看起来不错。
-
我认为这与 StreetListings 的自定义对象类有关。我检查数据库是否为空,但不是。但是我的
变量是空的...