0

単一の NSDate 属性を持つテーブルがあります。このテーブルには、NSDate 属性にさまざまな日付が設定されているレコードが含まれています。この NSDate 属性内の個別の年のみを取得するリクエストを作成する必要があります。

たとえば、テーブルに次のエントリが含まれているとします:

date |stringValue
01-20-2013|"foo"
03-23-2013|"bar"
04-24-2014|"baz"

コア データ フェッチ リクエストは、次の配列を返します:

2013
2014

4

2 に答える 2

0

まず、このような個別の値を取得する必要があります

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"MyEntity"];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"MyEntity" inManagedObjectContext:self.managedObjectContext];

// Since you only want distinct date, only ask for the 'date' property.
fetchRequest.resultType = NSDictionaryResultType;
fetchRequest.propertiesToFetch = [NSArray arrayWithObject:[[entity propertiesByName] objectForKey:@"date"]];
fetchRequest.returnsDistinctResults = YES;

// Now it should yield an NSArray of distinct values.
NSArray *distinctDateArray = [self.managedObjectContext executeFetchRequest:fetchRequest error:nil];

次に、 NSDateFormatter を使用して、このように必要な正確な年の値のみを取得します。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy"];
for(NSDate *date in distinctDateArray)
{
NSLog(@"Date: %@", [dateFormatter stringFromDate:date]);
}
于 2013-10-01T05:52:23.280 に答える