Objective c 核心数据:排序和;从可转换字段解密值

Objective c 核心数据:排序和;从可转换字段解密值,objective-c,ios,sorting,core-data,nsdata,Objective C,Ios,Sorting,Core Data,Nsdata,我在一个可转换字段中存储了一些加密的NSString。我需要解密并按字母顺序列出所有值 NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"trans_word" ascending:YES

我在一个可转换字段中存储了一些加密的NSString。我需要解密并按字母顺序列出所有值

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] 
                                    initWithKey:@"trans_word" 
                                    ascending:YES
                                    comparator:^NSComparisonResult(id obj1, id obj2) {
    NSString* s1 = [encryptObj decryptingfromValue:obj1]; 
    NSString* s2 = [encryptObj decryptingfromValue:obj2]; 
    NSLog(@"xxx");
    return [s1 compare:s2];
}];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

看来这座大楼没有什么性能。你能给我一些提示吗?谢谢

在10.6之前的iOS和OS X上以及使用基于SQLite的存储时,不支持块谓词

特殊注意事项

在Mac OS X v10.6中,核心数据在内存和原子存储中支持此方法,但在基于SQLite的存储中不支持


谢谢你,亚历克斯!有别的方法吗?没有。这是加密数据的问题之一。你不能用它做太多。您可以创建包含未加密数据的临时属性(未保存到存储区的属性)?我在加密方面没有太多经验/如果确实必须使用块谓词,唯一的解决方案是将它们全部读入内存,并对数组使用块谓词排序。