Когато разработваме в Monotouch, "по-добре" ли е за нас истински .NET event
s или NSNotificationCenter
?
Прост пример: имам UIViewController
. Той предлага събитие „CallbackWhenDisappeared“. Това събитие се задейства в ViewDidDisappear
. Който проявява интерес може да се регистрира за събитието.
Мога също така да публикувам „MyFancyControllerHasDisappeared“ на NSNotificationCenter
и да оставя на заинтересованите обекти да се абонират там.
Коя версия е за предпочитане?
Недостатъкът с .NET събитията, който виждам: изчезващият контролер може да съдържа препратка към абониращия се контролер (или обратното?) и може да не се събира боклук.
Също така харесвам хлабавото свързване при използване на NSNotificationCenter в сравнение със събитията, при които класовете наистина трябва да се познават.
Има ли грешен или правилен начин да го направите?