在我的一些學習中,我看到有人提到,在你的視圖控制器中,你可以有一個模型,並且在模型上有一些監聽器來改變它。我認爲我沒有爲這些使用正確的名稱,這可能是爲什麼我的搜索沒有發現任何東西。基本上我想將我的服務器調用從控制器移到我的模型中,但我需要某種監聽器來了解何時調用完成以更新視圖。iOS:Objective-C中的事件偵聽器的等效物是什麼?
回答
考慮代表 delegates tutorial
或塊多一點先進 basic blocks tutorial
剛開始與代表,
你也可以使用NSNotification NSNotification tutorial但不推薦,因爲它們傳播到每一個類,你可能只需要發送消息到特定的類別不是每一個
我認爲您可能正在尋找NSNotificationCenter,它可以將消息傳遞給任何可能正在收聽的人。因此,您可以發送模型中事件的通知,並在您的控制器中監聽它。更清潔的方法可能是與代表一起實施自己的協議。
Objective C的使用delegates
這篇文章有一個很好的例子:How do I create delegates in Objective-C?
你要找的志願 - 鍵/值觀察:
http://nachbaur.com/2011/07/29/back-to-basics-using-kvo/
代表+通知適用於ob之間的通信但是當數值發生變化時,它們不會自動發送消息(這是你的問題,也就是你所問的)
屬於C#世界,我必須去目標c(對於我的工作)。 我認爲事件等同的目標C是這樣實現:
與您的所有事件的方法創建協議:
@protocol MyDelegate <NSObject>
- (void)myEvent;
@end
在你的類,它應該發送的情況下,添加:
@interface MyClassWichSendEvent : NSObject
@property (nonatomic, retain) IBOutlet id<MyDelegate> delegate;
@end
例如:舉辦活動,例如:
- (IBAction)testEvent:(NSButton*)sender
{
[self.delegate myEvent];
}
現在,在監聽器類,你應該聽的事件是這樣的:
協議添加到您的類,聽
@interface Document : NSDocument<MyDelegate>
在實現中,對init或在界面生成器,你必須鏈接委託你的對象實例要傾聽你自己的類。
在代碼
-(void)awakeFromNib
{
myObjToListen.delegate = self;
}
- 在Interface Builder - > IBOutlet中從委託到你聽的課。
最後,實現你的方法,你的監聽器類:
- (void)myEvent
{
NSLog(@"i have listen this event !");
}
對不起,我的英語,我希望幫助的人誰從Java或C#去了。
我不明白你怎麼稱呼myEvent在一個ID?因爲我看到的是代表是IBOutlet ID
- 1. Hibernate事件偵聽器 - postFlush等效
- 2. 事件處理程序等效事件偵聽器
- 3. 表單的無效事件偵聽器
- 4. 對元素的jQuery.ready()等效事件偵聽器?
- 5. 事件偵聽器
- 6. PowerShell中'nohup'的等效物是什麼?
- 7. Dart中Platform.flush()的等效物是什麼?
- 8. 什麼是VB.NET中Program.cs的等效物
- 9. vb.net中nslookup的等效物是什麼?
- 10. jquery中的等效物是什麼
- 11. 將事件偵聽器傳遞給事件偵聽器?
- 12. javascript中的多個事件偵聽器
- 13. Windows的Cloud-Init等效物是什麼?
- 14. 什麼是blobstore「Create_upload_url」的GCS等效物?
- 15. 什麼是SIOCADDRT的IPv6等效物?
- 16. 什麼是React.PropTypes.node的TypeScript等效物?
- 17. 什麼是MovieClip.CreateEmptyMovieClip的AS3等效物?
- 18. 事件偵聽器5
- 19. 事件偵聽器在evently
- 20. 蠟染事件偵聽器
- 21. ZF3 onRoute事件偵聽器
- 22. reactjs事件偵聽器window.resize
- 23. 匿名事件偵聽器有什麼更好的選擇?
- 24. 爲什麼我的事件偵聽器不止一次發射?
- 25. 爲什麼symfony2不會調用我的事件偵聽器?
- 26. 爲什麼在函數調用中使用事件偵聽器?
- 27. 事件偵聽器,以等待所有XMLHttpRequest的內部的iframe
- 28. 什麼是ASP MVC中的django中間件等效物?
- 29. 爲什麼在使用事件冒泡時不會調用無效事件的事件偵聽器?
- 30. 添加並立即刪除事件偵聽器的目的是什麼?
Apple查看[此文檔](https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CommunicatingWithObjects/CommunicateWithObjects.html)。 – dasblinkenlight