我剛開始使用Objective C,並且有兩個對象之間的通信問題。對象之間的簡單通信NSNotification/Delegates還是類似的?
說我有一個對象,我們稱之爲aTimcode從類「Timecode」中的main()實例化,它是一個存儲Timecode(例如01:30:20:10)的類,並且有方法de /增加這個時間碼和一些與時間碼相關的方法。
我有第二個對象,可以叫它aVideo從類「視頻」,做一些(openCV)的東西在一個視頻,也在main()中創建。
所以我的主要()看起來像:
Timecode *aTimecode = [[Timecode alloc] init];
Video *aVideo = [[Video alloc] init];
[aVideo doFancyOpenCVSTUFF: someparameter];
我現在想aVideo來調用aTimecode方法。像
[aTimecode increaseFramesBy: 5];
我知道簡單的方法來建立通信將是從內aVideo實例aTimecode:
// somewhere within aVideo
Timecode * aTimceode = [[Timecode alloc] init];
[aTimecode increaseFramesBy: 5];
[aTimecode release];
但當然,這會破壞存儲在aTimecode信息的釋放。
但是當程序更進一步我想了很多視頻對象(bVideo,cVideo,等...)的aTimecode作出貢獻的價值觀和做數學與預先存儲的號碼。 aTimecode應該存儲他們,即使視頻被髮布和bVideo開始做一些東西。
什麼是正確的溝通方式?代表們? NSNotification?
有可能是,例如aVideo發送大量消息來aTimecode情況 - 每秒10次或更多次。在短時間內發送這麼多消息的正確方式是什麼?
@菲利普米爾斯 - 感謝超快速和非常非常有幫助的答案!首先嚐試使用initwithTimecode。 – kava