【发布时间】:2023-03-19 03:46:01
【问题描述】:
好的,我最初想让NSSortDescriptor 请求NSFetchedResultsController 根据我的NSManagedObject 子类中的属性进行排序,但显然不会这样做,因为 NSFetchedResultsController 仅限于谓词和排序对获取的实体及其关系起作用的描述符,因此我决定在我的数据模型中创建一个瞬态属性,将该属性的属性综合到我的NSManagedObject 子类中的 ivar,并根据它进行排序。
运行它时,我在执行 fetch 'NSInvalidArgumentException', reason: 'keypath isActive not found in entity <NSSQLEntity SMSourceEntity id=2>' 时得到了
我知道这是 KVO 问题,所以我添加了+ (NSSet*)keyPathsForValuesAffectingIsActive,但仍然遇到同样的问题。
我做错了什么,或者我仍然缺少一些东西让它找到我的密钥路径?谢谢。
代码:
@implementation SMSourceEntity
@dynamic friendlyName;
@dynamic interfaceAddress;
@dynamic uniqueID;
@dynamic network;
@synthesize isActive = _isActive;
+ (NSSet*)keyPathsForValuesAffectingIsActive
{
return [NSSet setWithObject:@"isActive"];
}
@end
我的排序描述符:
request.sortDescriptors = [NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"isActive" ascending:NO] , nil];
【问题讨论】:
标签: ios objective-c key-value-observing nssortdescriptor transient