我不知道如何使用Realm进行排序。我目前的代码是。如何使用领域进行排序?
data = realm.objects(WorkoutSet)
data = data!.sorted("date")
我想的Int
从高数量低的数字排序日期。该文档需要更多信息,并且GitHub链接会抛出一条404
消息。
我不知道如何使用Realm进行排序。我目前的代码是。如何使用领域进行排序?
data = realm.objects(WorkoutSet)
data = data!.sorted("date")
我想的Int
从高数量低的数字排序日期。该文档需要更多信息,并且GitHub链接会抛出一条404
消息。
您可以在ascending
参数添加到sorted
方法:
data = data!.sorted("date", ascending: false)
使用按照从大到小的顺序日期字段排序这个你WorkoutSet。
更新
与SWIFT 3和最新的RealmSwift版本现在已更改为:
data = data!.sorted(byKeyPath: "date", ascending: false)
如果你想自己评估排序标准,你可以使用:
data = data!.sorted(by: { (lhsData, rhsData) -> Bool in
return lshData.something > rhsData.something
})
但请注意,自行排序结果确实会返回Array
而不是Realm Results
对象。这意味着会有性能和内存开销,因为Results
是懒惰的,如果使用上述方法进行排序,您将失去这种懒惰行为,因为Realm必须评估每个对象!只要可能,你应该坚持结果。如果确实没有其他方法来分拣物品,请仅使用上述方法。
使用Sort.ASCENDING或Sort.DESCENDING
import java.util.Date;
import io.realm.RealmModel;
import io.realm.annotations.Index;
import io.realm.annotations.PrimaryKey;
import io.realm.annotations.RealmClass;
import io.realm.annotations.Required;
@RealmClass
public class Pojo implements RealmModel {
@Index
@Required
@PrimaryKey
protected Long id;
protected Date data_field;
protected int int_field;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
import java.util.List;
import io.realm.Realm;
import io.realm.RealmQuery;
import io.realm.RealmResults;
import io.realm.Sort;
public class Dao {
public List<Pojo> getAllById(Long id) {
Realm realm = Realm.getDefaultInstance();
RealmQuery<Pojo> query = realm.where(Pojo.class);
query.equalTo("pojo_id", id);
RealmResults<Pojo> result = query.findAll();
result = result.sort("data_field", Sort.ASCENDING);
result = result.sort("int_field", Sort.DESCENDING);
//detaching it from realm (optional)
List<Pojo> copied = realm.copyFromRealm(result);
realm.close();
return copied;
}
}
realmResults.sort( “日期”,TRUE);
你能解释一下'sort date和Int from 1 to 0'是什么意思吗? – joern
我刚编辑它。 –
'data!'中的感叹号('!')做了什么? –