从领域查询时遇到问题:初始化程序错误

Trouble querying from realm: Initialiser error

我正在尝试从我的 Realm 数据库中查询 name 字段,但我一直收到此错误

Initialiser for conditional binding must have Optional type, not 'Results<(Particulars)>' (aka 'Results')

这是我的代码

import Foundation
import Foundation
import RealmSwift

class Users {
private var _name: String!
private var _email: String!
private var _userId: Int!
private var _profilePicture: String!
private var _username: String!

let realm = try! Realm()

var name: String {
    _name = getName()
    return _name
}

var email: String {
    _email = getEmail()
    return _email
}

func getName () {

    guard let userName = Data.sharedInstance.userName  else { print("Empty username"); return }

    if let name = realm.objects(Particulars).filter("username == '\(userName)'"){
        return name
    }

}

func getEmail () {

    guard let userName = Data.sharedInstance.userName  else { print("Empty username"); return }

    if let email = realm.objects(Particulars).filter("username == '\(userName)'"){
        return email
    }

}

这是我的领域数据库:

两件事:

1) Realm.objects() returns Results 对象(与数组相同)包含零个或多个您搜索类型的对象。如果只想获取从该查询返回的第一个对象,请在末尾添加 .first,在 .filter.

之后

2) 得到第一个对象后,它仍然是Particulars类型。之后,您需要实际访问您之后的 属性(即 nameemail

例如:

func getEmail() {

   if let particular = realm.objects(Particulars).filter("username == '\(userName)'").first {
      return particular.email
   }
}

如果您需要更多说明,请告诉我。 :)