2013-03-04 67 views
1

我使用NSValueTransformer將核心數據保存爲CLPlacemark。 (所以它被保存爲NSDataNSPredicate將轉換的CLPlacemark與另一個CLPlacemark進行比較

但是我已經到了一個地步,我需要根據另一個CLPlacemark對象過濾保存的對象。

我已經試過這一點,這是行不通的:

NSExpression *exprPath = [NSExpression expressionForKeyPath:@"placemark"]; 
NSExpression *exprKeyword = [NSExpression expressionForConstantValue:[NSKeyedArchiver archivedDataWithRootObject:placemark]]; 
NSPredicate *predicate = [NSComparisonPredicate predicateWithLeftExpression:exprPath rightExpression:exprKeyword modifier:NSDirectPredicateModifier type:NSEqualToPredicateOperatorType options:0]; 

因此,任何其他建議?

+0

下面的答案是否適合您? :) – 2013-03-09 08:34:55

+0

不,我已經結束了使用sha1哈希進行比較。 – Devfly 2013-03-09 12:39:00

回答

1

核心數據支持==和!=針對二進制數據(和可變形屬性)的搜索。請勿使用NSKeyedArchiver爲您的地標。就像這樣在謂詞中使用它:

[NSPredicate predicateWithFormat:@"placemark = %@", placemark] 
相關問題