我見過一個基於角色的iOS項目,作者在應用程序啓動時啓動幾乎所有的視圖和控制器。它主要使用NSNotification進行通信。即使是NSNotification是同一種,這意味着所有的通知具有相同的名稱:對於iOS項目來說,初始化項目中所需的所有UIViewController和UIView是否是一種很好的做法?
[[NSNotificationCenter defaultCenter] addObserver:aObserver selector:aSelector name:*notification_name* object:nil];
[[NSNotificationCenter defaultCenter] postNotificationName:*notification_name* object:parameter];
它講述了根據不同notification.object,這是NSObject的一個自定義子類剛剛包含一些不同類型的通知整數,一些字符串和一些物品像
@interface Parameter : NSObject
{
// which is an enumeration type to actually define different notification type
ParameterID m_iVCD_ID;
int m_iInt0;
int m_iInt1;
int m_iInt2;
float m_fFloat0;
float m_fFloat1;
float m_fFloat2;
NSString *m_sString0;
NSString *m_sString1;
NSString *m_sString2;
NSMutableArray *m_oArray;
NSObject *m_oObject;
NSObject *m_oObject0;
NSObject *m_oObject1;
NSObject *m_oObject2;
}
我覺得這是不是一個很好的主意,因爲沒有類型檢查的notification.object。 而基於通知的架構是一個廣播系統,因爲它爲所有通知使用相同的名稱。另外,在開始時初始化所有的UIViews和UIViewControllers需要花費大量的內存。但是,在使用管理器時,我沒有看到控制檯發出任何內存警告,但在console.app中發現了任何內存警告。
任何人都可以提供一些其他的建議嗎?此架構的其他任何不良方面?
http:// nshipster。com/nsnotification-and-nsnotificationcenter/ – BoilingLime