Получить значение связанного объекта из запроса фильтра с помощью Realm swift - PullRequest
0 голосов
/ 02 февраля 2019

Так что я довольно новичок в области, и я чувствую, что мой вопрос очень простой, но я не могу найти ответ на него.

В основном я пытаюсь запросить Realm для всех playerName, связанных с определенной TeamID (т.е. TeamID не является первичным ключом), однако я не могу найти решение.Я получаю ошибку Value of type 'Results<playerInfoTable>' has no member 'playerName'.

Ниже приведен мой класс Realm:`class playerInfoTable: Object {

@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]

1 Ответ

0 голосов
/ 03 февраля 2019

Полагаю, вы получаете ошибку при объявлении константы mainPlayerTeamName.Попробуйте следующее:

let mainPlayerTeamName = mainPlayerStrings.first?.playerName

И я заметил, что в вашем классе playerInfoTable вы объявляете «teamID» как «TeamID», а в своем предикате вы называете его «teamID».Решите, какой вы хотите, потому что NSPredicate чувствителен к регистру по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...