2010-03-26 60 views
0

我即將構建一個應用程序,該應用程序具有位置數據庫(lon/lat),並且即將構建dataModel。 Actualy該應用程序非常簡單,我想要的只是能夠獲取用戶周圍的所有地方(比如在半徑30英里內)。iPhone地理標記數據(SQLite或CoreData)

用戶SQLite更好嗎(有沒有地理空間擴展)?

我將在數據庫中有大約5000個位置,我想知道我可以在哪裏詢問數據庫而不影響性能。

回答

2

我會與CoreData一起處理性能問題。 CoreData在執行單個操作時非常有用,例如向商店中讀取或插入記錄,但在執行批量操作時失敗,因爲您必須迭代所有對象才能執行更新或刪除操作。

另一方面,SQLite比批量操作中的CoreData慢一點但比CoreData快一些。

我有我的應用程序使用CoreData與8k +條目,我沒有問題。我遇到的唯一問題是進行批量操作時,我更新了我的應用程序,以便對需要批量更新的數據使用SQLite。

您還可以使用CoreData訪問SQLite。

+0

嗯。 聽起來有趣。 如何使用CoreData訪問SQLite? 另一方面,我有點混淆我怎麼可以CoreData和檢索所有地方附近另一個沒有實際提取許多對象和做一個距離比較InMemory? 你能指點我一個解決方案嗎? – clide313 2010-03-26 13:51:54

+0

CoreData被創建爲將數據存儲處理爲對象,因此您甚至可以擁有XML並將其用作存儲,您必須使用NSPersistentStoreCoordinator並將存儲類型設置爲NSSQLiteStoreType。無論如何,我錯過了你想要通過radius獲取的部分,如果這是SQLite的情況,因爲你不能在CoreData中具有聚合函數。是的,如果你使用CoreData,你將不得不將對象提取到一個NSMutableArray中,並從那裏獲取它們,這聽起來不是一個好主意。 – 2010-03-26 14:33:01

+0

感謝您的幫助。 我認爲我應該去SQLite,因爲我想做一些半徑搜索。 – clide313 2010-03-29 11:40:54