2012-06-24 24 views
0

我在可變換字段中有一些加密的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]; 

看來塊沒有表現。你能給我任何提示嗎?謝謝!

回答

1

在iOS 10.6之前的OS X上,當使用基於SQLite的商店時,不支持塊謂詞。

特殊注意事項

在Mac OS X v10.6中,核心數據支持在存儲器內和原子存儲該方法,而不是在基於SQLite的店內。 (Link)

+0

謝謝你亞歷克斯!有沒有其他方法? – Jimi

+0

不是。這是加密數據的問題之一。你無法用它做很多事情。您可以創建一個包含未加密數據的瞬態屬性(未保存到存儲的屬性)?我對加密的東西沒有多少經驗。 :/ –

+0

如果您確實必須使用塊謂詞,唯一的解決方案是將它們全部讀入內存,並使用數組上的塊謂詞排序。 – borrrden