我有一個iPhone應用程序,它在任何給定的時間處理25,000個地方的子集。如何維護對象的全局緩存? (或NSMutableSet不保留的內容)
我想維護位置緩存,以便我知道如果我的應用程序的某個部分更新了某個位置,則知道該位置的其他每個部分都會看到該更新。
我最初的實現是創建一個NSMutableSet來存儲對緩存地點的引用。
找到新位置的方法將首先檢查緩存並返回緩存的對象,或者如果位置不在緩存中,它們將創建一個新的位置對象並將其添加到緩存中。
問題是如何釋放不再需要的對象?
NSMutableSet將保留這個位置,所以retainCount永遠不會變爲零,並且dealloc永遠不會被調用。
是否有一個Kosher方法來處理髮布方案?有沒有其他的模式可以做到這一點,我不知道。
(CoreData目前不是一個選項,但我明白它可以處理這個問題)。
謝謝
我現在正在使用SQLite。我不希望在視圖重新出現時不必重新加載視圖中的所有對象,只是因爲它們中的一個可能已經改變,所以我想要一種方法將一個地方的變化傳達給所有其他viewController,掛在它上面。 – 2009-09-04 04:15:07