使用领域迅速从过滤器的查询获取相关对象的值

问题描述 投票:1回答:1

所以林相当新的境界,我感觉我的问题很简单,但我不能找到它的答案。

基本上我想查询及的境界与特定playerName相关联的所有TeamID(即TeamID不是主键),但林无法找到解决方案。我不断收到一个Value of type 'Results<playerInfoTable>' has no member 'playerName'错误。

下面是我的领域类: `类playerInfoTable:对象{

@objc dynamic var playerID: Int = 0
@objc dynamic var playerName: String = ""
@objc dynamic var jerseyNum: Int = 0
@objc dynamic var TeamID: String = ""
@objc dynamic var goalCount: Int = 0
@objc dynamic var shotCount: Int = 0

override class func primaryKey() -> String {
    return "playerID"
}

}`

和代码我使用的查询境界:

let mainPlayerFilter = NSPredicate(format: "teamID == %@", "1")
let mainPlayerStrings = realm.objects(playerInfoTable.self).filter(mainPlayerFilter)
let mainPlayerTeamName = mainPlayerStrings.playerName

解!

let mainPlayerFilter = NSPredicate(format: "TeamID == %@", String(homeTeam!))
let mainPlayerStrings = realm.objects(playerInfoTable.self).filter(mainPlayerFilter)
let mainPlayerTeamName = mainPlayerStrings.value(forKeyPath: "playerName") as! [String]
swift realm
1个回答
0
投票

我想,当你声明的mainPlayerTeamName常数你的错误。尝试以下方法:

let mainPlayerTeamName = mainPlayerStrings.first?.playerName

而且我注意到,在您的playerInfoTable类声明“teamID”为“TeamID”,而在你的谓词你把它称为“teamID”。决定你想要哪一个,因为NSPredicate区分默认敏感。

© www.soinside.com 2019 - 2024. All rights reserved.