我有一些有用的物理計算方法,如加速/減速,速度等。如何才能用類方法創建一個類,它能夠記住值? Core Animation如何做到這一點?
就時間而言,它們中的大多數都需要至少兩次測量。所以每次我想使用它們,我都必須在需要計算的對象中實現一堆實例變量,例如計算加速度。
例如,無論我需要計算的加速,包括我SLPhysics.h和我的代碼寫:
double acceleration = [SLPhysics + calculateAccelerationForFirstMeasuredSpeed:v1 secondMeasuredSpeed:v2 firstMeasuredTime:t1 secondMeasuredTime:t2];
這工作得很好。但我更喜歡一種行爲與Core Animation類似的方式,其中大部分做什麼的細節對於類的用戶是隱藏的。
因此,爲了阻止我做實例變量記住上次的測量值v1和T1,我寧願一個簡單的對處理這樣調用:
double acceleration = [SLPhysics + calculateAccelerationForMeasuredSpeed:v measuredTime:t context:self];
注意上下文參數。我認爲這是要走的路。但是目前我沒有大的想法,那些類方法如何訪問數據結構,例如NSMutableDictionary。如果我要創建實例變量,那麼類方法將無法訪問。如果我將它作爲實例方法,則使用起來會很難看,而且用戶會被內存管理和其他東西困擾。此外,所有這些分配和初始化可能會花費太多(我認爲)。我的意思是......看看Core Animation。太容易了!我想爲此做同樣的事情。但他們也有這個問題,我想。他們必須記住一些東西。動畫的持續時間,上下文等。
我想過要將值寫入文件,但這太昂貴了。我可以使用SQLite。過於昂貴的運作,可能。這些方法可用於需要每秒5至100次計算的地方。 Arent有什麼像「類變量」?
如果我明白了,SLPhysics課程將只有一個實例。但誰擁有它?誰不再需要誰負責釋放對象?或者我不必擔心釋放它,因爲只要我的應用程序運行,它就會一直保留下來。 – Thanks 2009-05-21 08:02:10