0

나는이 내가 수행하는 방법을 모르는 쿼리를 가져 오기 어려운
내 핵심 DAT 모델 :코어 데이터 - 술어 - 많은 개체

Artis 
----- 
name 

songs -> (to-many relationship to Song Object) 

Song 
----- 
title 
release_Date 

artist -> (to-one relationship to Artist Object) 

내가 5 명 최고의 아티스트를 가져 술어가 필요합니다 대부분의 노래 (그리고 적어도 2 곡)와 모든 노래 release_Date는 지난 30 일 이내에 있어야합니다.

답변

0

당신은 결합해야합니다 :

// Predicate for date at least 30 days back 

NSDate *date = [NSDate date]; 
NSDate *date30daysBack = [date dateByAddingTimeInterval:-60*60*24*30]; 

[NSPredicate predicateWithFormat: @"song.release_date >= %@", date30daysBack]; 

// Predicate for at least 2 songs 

[NSPredicate predicateWithFormat: @"[email protected] >= 2"]; 

// Sort descriptor for most songs 

//EDIT 
//Sorting should be done after the fetch request. 

// Set the fetchLimit of your NSFetchRequest to 5 
request.fetchLimit = 5; 
+2

비고 : 없음 매일 60 * 60 * 24 초 (일광 절약 시간 전환의 것)가 있습니다. –

+0

정확함, 날짜는 NSDateComponents를 사용하여 작성해야합니다. – graver

+0

답해 주셔서 감사합니다. 2 가지 질문 : 1. AND로 하나의 술어를 AND로 사용하여 처음 두 술어를 수행 할 수 있습니까? 2. 상위 5 개를 수행 할 술어 또는 표현식을 사용하는 방법이 있습니까? – Mario

관련 문제