gpt4 book ai didi

objective-c - 一种获取核心数据对象属性最大值的简单、可靠的方法?

转载 作者:搜寻专家 更新时间:2023-10-30 19:45:01 25 4
gpt4 key购买 nike

是否有一种简单(或可靠)的方法来找到核心数据属性的最大值?苹果的example只是行不通(而且对于这样一个简单的任务来说,它又长又复杂得离谱)。我在这上面花了将近一天的时间,一直没能找到满意的答案。请帮忙!

我得到了与这个问题相同的错误:-[NSCFNumber count]: unrecognized selector .和他一样,我一直没能找到解决问题的方法。

这个提问者认为他解决了同样的问题,但是,就像其他人评论的那样,这里的答案显然是错误的。

question完全相同的代码也有问题,但至少提问者实际上没有遇到异常。看起来他无法让它正常工作,最终使用了不同的解决方案,但没有说明是什么。

一个人here通过检索排序的结果并使用最高值来解决这个问题。不理想!但是,如果我不能很快找到解决方案,我想我将不得不做同样的事情,或者重构我的模型或业务规则,或者在我的模型中创建和维护一个 MaxValue 类来解决这个问题......

最佳答案

我在获取特定值的核心数据编程指南中找到了这个。它指的是最低限度,但它回答了你的问题。并不像人们希望的那么容易,但也并不难遵循。

NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:context];
[request setEntity:entity];
// Specify that the request should return dictionaries.
[request setResultType:NSDictionaryResultType];
// Create an expression for the key path.
NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"creationDate"];
// 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 = nil;
NSArray *objects = [managedObjectContext executeFetchRequest:request error:&error];
if (objects == nil) {
// Handle the error
}
else {
if ([objects count] > 0) {
NSLog(@"Minimum date: %@", [[objects objectAtIndex:0] valueForKey:@"minDate"]);
}
}



[expressionDescription release];

[request release];

关于objective-c - 一种获取核心数据对象属性最大值的简单、可靠的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6260851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com