Tôi đang cố tìm ngày cũ nhất trong một thuộc tính cụ thể trong Dữ liệu chính. Tôi đã tìm thấy an example in the Core Data Programming Guide rằng purports thực hiện chính xác điều đó nhưng vẫn gặp phải lỗi đã chọn không được công nhận khi tôi chạy nó.Dữ liệu cốt lõi: cố gắng tìm ngày tối thiểu cho một thuộc tính trong một thực thể
Mã của tôi (với những thay đổi chỉ tối thiểu từ Apple Ví dụ):
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Session" inManagedObjectContext: ctx];
[request setEntity:entity];
// Specify that the request should return dictionaries.
[request setResultType:NSDictionaryResultType];
// Create an expression for the key path.
NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"startedAt"];
// Create an expression to represent the minimum value at the key path 'creationDate'
NSExpression *minExpression = [NSExpression expressionForFunction:@"min:" arguments:[NSArray arrayWithObject:keyPathExpression]];
// Create an expression description using the minExpression and returning a date.
NSExpressionDescription *expressionDescription = [[NSExpressionDescription alloc] init];
// The name is the key that will be used in the dictionary for the return value.
[expressionDescription setName:@"minDate"];
[expressionDescription setExpression:minExpression];
[expressionDescription setExpressionResultType:NSDateAttributeType];
// Set the request's properties to fetch just the property represented by the expressions.
[request setPropertiesToFetch:[NSArray arrayWithObject:expressionDescription]];
// Execute the fetch.
NSError *error;
NSArray *objects = [ctx executeFetchRequest:request error:&error];
Và các lỗi:
-[NSCalendarDate count]: unrecognized selector sent to instance ...
Đó là kỳ lạ cho rằng 1) NSCalendarDate bị phản đối và 2) Tôi m chắc chắn không gọi số.
Mọi trợ giúp sẽ được đánh giá cao nhất!
Có phải "startedAt" được định nghĩa là NSDate không? và nó có được lập chỉ mục hay không. Tôi đã sử dụng gần như mã chính xác cho bạn và nó hoạt động rất tốt. Tôi nghĩ rằng nó là tốt hơn so với sử dụng một loại –