我需要跟蹤一堆可以通過兩個鍵(實際上是經度和緯度,但還有其他一些屬性)標識的對象。我需要做這樣的事情,如通過這兩個鍵搜索特定的對象,如果它存在則更新它,如果不存在則插入。我剛在想。我在看NSDictionary和NSSet,但認爲我會聽到羣衆不得不說的。iPhone:數據結構選擇
0
A
回答
4
我想簡單的方法是使用NSDictionary
。您只需執行[dic objectForKey:key]
即可獲取您的數據。
此外,一個好的做法是創建密鑰的一些定義,所以它更容易改變的項名稱,也避免錯字:
#define kObjectLatitude @"Latitude"
#define kObjectLongitude @"Longitude"
[object setObject:lat forKey:kObjectLatitude];
[object setObject:lon forKey:kObjectLongitude];
不要忘了寫在了定義聰明的地方。如果僅在一個類中使用它,只需將它們寫在聲明的頂部。但是,如果您需要通過代碼的不同部分來使用它們,則可以考慮將其移動到主類的頭文件或用於定義的特定頭文件:)
NS(可變)集將無用爲你在這種情況下。 NSSets是數學集,你不能用特定的鍵訪問特定的數據(也就是說,你不能問一個集合:「嘿,給我的經度,你永遠保存它!」)
2
使用NSDictionary 。這就是它的意思。
3
這不是一個直接的答案,而是一個警告詞。經度和緯度是CLLocationDegrees,它是一個雙精度浮點值。由於浮點數學是不精確的,因此測試浮點數的平等是一個有風險的命題。您可以輕鬆地在兩個理論上相同的浮點上進行平等測試。我不知道你的應用程序的要求,但你可能想要測試接近度而不是平等。
相關問題
- 1. Python數據結構選擇
- 2. 數據結構的選擇
- 3. 選擇數據結構
- 4. 在perl中選擇數據結構
- 5. 選擇合適的數據結構
- 6. 選擇表內數據庫結構
- 7. 選擇數據結構中的對象
- 8. 選擇哪種數據庫結構?
- 9. 如何選擇數據庫結構?
- 10. 如何選擇數據的json結構?
- 11. 如何選擇數據結構
- 12. 要選擇哪種數據結構?
- 13. 選擇正確的數據結構
- 14. [數據結構]:選擇一個數據結構來構建一個圖表
- 15. iPhone樹型數據結構
- 16. 爲類似的數據結構選擇MongoDB集合結構
- 17. 除了結構化XML數據之外,還選擇行數據
- 18. 從XML中選擇,構建數據結構
- 19. 根據相關結構在python結構中選擇記錄
- 20. 重新選擇選擇器結構
- 21. 在iPhone上創建XML數據結構
- 22. 選擇最佳整數集合的數據結構和設計
- 23. 從Javascript嵌套數組/數據結構選擇隨機項目
- 24. Hive選擇數據到一個結構數組
- 25. 結構數組選擇排序
- 26. 從數組中選擇隨機結構
- 27. 如果選擇結構
- 28. MYSQL選擇值表結構
- 29. 結構的選擇排序
- 30. iPhone上的鈦行數據選擇
好評,謝謝。在涉及花車的數學運算時,我一定被咬過。我已經把他們四捨五入到幾個有效數字,並且似乎到目前爲止工作。將注意這一點。 – Codezy 2009-10-07 05:01:11