0

我有一个 SKNodes 的 NSArray,并且正在尝试使用 NSPredicate 使用谓词过滤器对 SKNodes 的 location.y 值进行排序。我正在尝试以下操作,但在运行时我得到“这个类不是键 y 的键值编码兼容”所以,我假设我必须做其他事情来过滤对象的子组件?这可能吗?

NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"position.y"
                                                             ascending:YES];
NSArray *results = [myarrayofsknodes sortedArrayUsingDescriptors:[NSArray arrayWithObject:descriptor]];
4

1 回答 1

1

LearnCocos2D 的评论是正确的。但是,您可以通过其他方式进行排序。

NSArray *original; // Populate this elsewhere
NSArray *results = [original sortedArrayUsingComparator:^(MyObject *obj1, MyObject *obj2) {
    if (obj1.position.y==obj2.position.y) {
        return NSOrderedSame;
    } else if (obj1.position.y < obj2.position.y) {
        return NSOrderedAscending;
    } else {
        return NSOrderedDescending;
    }
}];
于 2013-10-23T03:07:33.537 回答