2017-10-06 19 views
1

我想从领域获取对象,其中newDatefirstDate。因此,如果firstDate的日期为05.10.2017,那么在该日期之后将获得对象,例如06.10.2017,但不是04.10.2017。领域过滤优先日期然后newDate

这是怎么了存储日期:

class User: Object { 
    @objc dynamic var firstDate = Date() 
    @objc dynamic var newDate = Date() 
} 

这就是我现在的储蓄的对象:

let date = Date() 
let realm = try! Realm() 
let myUser = User() 

myUser.firstDate = self.date 

这是我正在试图获取对象:

var userData: Results<User>? 
if (homeIndexPathRow == 0) { 
    let getData = realm.objects(User.self).filter("firstDate > newDate") 
    userData = getData 
    print("userData", userData!) 
} 

当试图检索对象时,应用程序崩溃。是否有错误的过滤器格式?

+0

不要做力展开的,可以是'nil'的值。你确定数据实际上包含了一些过滤器应该返回的条目吗? –

+0

@DávidPásztor它应该包含条目。我已经在Realm Browser中打开领域文件,并且得到了这个:https://image.ibb.co/fSoxdw/Screen_Shot_2017_10_06_at_03_02_58.png所以你可以看到,它应该很好(?)左边是'firstDate',右边是'newDate'。 –

+0

有没有条目'firstDate> newDate',所以'getData'是'nil'不出所料...... –

回答

1

试试这个:

var yourNSDate = NSDate() 
let predicate = NSPredicate(format: "firstDate < %@", yourNSDate) 
let dataResults = realm.objects(User.self).filter(predicate) 
userData = dataResults 

替换用下面的代码if (homeIndexPathRow == 0) { ...

+1

像一个魅力,谢谢你先生! –