При разработке в Monotouch нам «лучше» настоящие .NET event
s или NSNotificationCenter
?
Простой пример: у меня есть UIViewController
. Он предлагает событие "CallbackWhenDisappeared". Это событие запускается в ViewDidDisappear
. Кому интересно, может зарегистрироваться на мероприятие.
С тем же успехом я мог бы опубликовать сообщение "MyFancyControllerHasDisappeared" на странице NSNotificationCenter
и позволить заинтересованным объектам подписаться там.
Какой версии отдать предпочтение?
Недостаток событий .NET, который я вижу: исчезающий контроллер может содержать ссылку на подписавшийся контроллер (или наоборот?) и не может быть собран мусором.
Мне также нравится слабая связь при использовании NSNotificationCenter по сравнению с событиями, когда классы действительно должны знать друг друга.
Есть ли неправильный или правильный способ сделать это?