2017-10-06 3 views
1

영역에서 객체를 가져 오려고합니다. 여기서 newDatefirstDate입니다. 따라서 firstDate의 날짜가 05.10.2017 인 경우 해당 날짜 이후의 개체 (예 : 06.10.2017)는 04.10.2017이 아니라 개체를 가져옵니다.영역 필터 firstDate보다 오래된 newDate

:

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

myUser.firstDate = self.date 

이 내가 객체를 검색하려고하는 방법이다 :

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

이 내가 객체를 저장하고 방법입니다

내가 날짜를 저장하고 어떻게
var userData: Results<User>? 
if (homeIndexPathRow == 0) { 
    let getData = realm.objects(User.self).filter("firstDate > newDate") 
    userData = getData 
    print("userData", userData!) 
} 

개체를 검색 할 때 응용 프로그램이 충돌합니다. 필터 형식이 잘못 되었습니까?

+0

아래의 코드로 그를 교체합니다. 데이터에 실제로 필터가 반환해야하는 항목이 실제로 포함되어 있습니까? –

+0

@ DávidPásztor 항목을 포함해야합니다. Realm Browser에서 영역 파일을 열었습니다. https://image.ibb.co/fSoxdw/Screen_Shot_2017_10_06_at_03_02_58.png 보시다시피 괜찮습니다 (?) Left는 '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 

는`nil` 할 수있는 값에 풀기 힘을하지 마십시오 if (homeIndexPathRow == 0) { ...

+1

매력처럼, 고마워요! –