所以我对这个领域很陌生,我觉得我的问题很基本,但我找不到答案。
基本上,我试图查询与特定playerName相关联的所有TeamID的Realm(即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]

最佳答案

我想您在声明mainPlayerTeamName常量时会遇到错误。请尝试以下操作:

let mainPlayerTeamName = mainPlayerStrings.first?.playerName

我注意到在playerInfoTable类中,您将“teamID”声明为“teamID”,而在谓词中,您将其称为“teamID”。决定您想要哪个,因为NSPredicate默认区分大小写。

10-08 18:34