如何在领域Swift 3中列出一个属性

时间:2017-09-06 04:02:48

标签: ios swift realm

如何在SQL中列出像let person = self.realm.objects(Person.self).filter("age")这样的领域数据库中的属性?

以下是我的尝试:WebDriverWait wait = new WebDriverWait(driver, 10); Alert alert = wait.until(ExpectedConditions.alertIsPresent()); alert.authenticateUsing(new UserAndPassword(username, password));

2 个答案:

答案 0 :(得分:2)

你可以得到像这样的记录列表

let realmCities = try! Realm()
lazy var arrDefaultCities: Results<Cities> = { self.realmCities.objects(Cities.self).sorted(byKeyPath: "cityName", ascending: true) }()

func filterCities()
        {
            let statePredicate = NSPredicate(format: "stateId = %d", objState.stateId)
            arrDefaultCities = try! Realm().objects(Cities.self).filter(statePredicate).sorted(byKeyPath: "cityName", ascending: true)

            self.filterArrCities.removeAll()
            for objCities : Cities in arrDefaultCities{
                if objCities.cityName == APP_DELEGATE.currentCity
                {
                    self.objCity = objCities
                }
                self.filterArrCities.append(objCities.cityName)
            }
        }

答案 1 :(得分:2)

您可以使用Realm中存储的特定模型类的所有实例访问单个属性 (因为Realm模型是本机对象,它们具有属性,而不是列) map

filter,顾名思义可以用于仅处理某个类型的所有实例都满足相同条件的子集(例如,您可以使用过滤器查找年龄超过其年龄的所有人18说:let adults = self.realm.objects(Person.self).filter("age > 18"))。

使用age获取Realm中所有Person实例的map属性:

let people = self.realm.objects(Person.self)
let ages = people.map{$0.age}

或在一行中给出一个数组作为输出:

let ages = Array(self.realm.objects(Person.self)).map{$0.age}