我想知道如何在目標C中實現委託模式。但討論幾乎完全集中在協議的採用,然後實現代表方法,這些委託方法帶有特定的協議 - 或 - 委託原則 - 或單獨的協議。如何在目標C中創建委託人?
我無法找到的是一個關於如何編寫將作爲委託人的類的簡單易懂的材料。我的意思是這個班級,其中一些事件的信息將來自哪一類,並提供用於接收該信息的協議 - 這種類型的2in1描述。 (協議和委託)。爲了我的學習目的,我想使用一個iPhone,一個Cocoa touch應用程序和Xcode4.2,使用ARC,不使用Storyboard或NIBs,去學習下面的例子。
讓我們來創建一個名爲「Delegator」的類,它是NSObject的一個子類。對被代理類已NSString的實例變量命名爲「報告」,並採用UIAccelerometerDelegate protocol.In委託人實現,我將實現委託方法
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
此委託方法將創建一個的NSString @「myReport」,並將其存儲在報告變量中,任何時候都有一個加速度計事件。此外,我想要第二個名爲ReportsStorage的類(NSobject的子類),它可以在其實例變量lastReport中存儲一些Nsstring(報告)。 目前爲止這麼好。 現在讓我們回到Delegator類。我想在Delegator中實現一個名爲ReportsDelegate的協議,它將通知採用它的類(ReportsStorage類),報告已生成並將通過委託方法傳遞此報告,這應該是(我相信)類似於這
-(void)delegator:(Delegator *)delegator didCreateNewReport:(NSString *)report;
能否請您爲委託者類(包括在「委託」屬性)的代碼,將做到這一點,有着怎樣的每一行代碼句話的含義?
由於提前,EarlGrey
可能重複[如何在Objective-C的委託的工作?( http://stackoverflow.com/questions/1045803/how-does-a-delegate-work-in-objective-c) – vikingosegundo