2017-08-25 32 views
0

有沒有辦法將我的謂詞縮小到兩個距離之間?目前,我可以創建的所有謂詞都是一個單獨的半徑,並從該用戶的當前位置找到該半徑內的所有對象。自定義nspredicate要在兩個距離之間

var locationPredicate = NSPredicate(format: "distanceToLocation:fromLocation:(%K, %@) < %f", "Location", location, 
             1000) 

有關視覺表現,我想抓住所有對象在本圖中橙色部分,與中心作爲用戶的當前位置。 (我目前只能得到黃色和橙色)。 enter image description here

回答

1

您應該能夠使用BETWEEN聲明:

NSPredicate(format: "distanceToLocation:fromLocation:(%K, %@) BETWEEN { %f , %f }", "Location", location, lowerBound, upperBound) 
+0

這並不工作,剛結束了與壞謂詞異常崩潰。任何其他想法?我一直在試圖自己找到一個,而且沒有太多的運氣。 – Shekar

+0

根據設置的不同,您總是可以不使用NSPredicates,也可以使用基於塊的謂詞。崩潰日誌中是否有相關信息? – Palle

+0

不熟悉基於塊的謂詞,我會做一些研究。崩潰日誌實際上只是說「無效謂詞」,因爲distanceToLocation:fromLocation實際上只應該接受1個參數(據我瞭解)。也許有支持between函數的不同參數? – Shekar