考虑以下示例:
我希望这些类(主要是视图)能够收到更新通知。我希望这些通知非常清楚。因此,当所有非小说类书籍都更新时,这应该是应该通知的。 我当然可以为每种类型使用单独的通知名称,但如果我们讨论的是整个库,那么包含数千个对象的大型集合视图将意味着注册了太多的观察者。在这种情况下,观察者可能会选择接收关于书籍的任何通知,可能是任何类型的通知。
我在NSNotification中遗漏(或似乎无法弄清楚)的内容是指定此需求的某种粒度。 简而言之:
答案 0 :(得分:2)
是的,您可以这样做,只需指定您的对象并将您的元数据打包到字典中,并将您的通知作为userInfo附加。并使用此方法发布通知:
- (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo
然后您可以访问您的通知,如:
- (void)handleNotification:(NSNotification *)noti{
NSDictionary *userInfo = [noti userInfo];
YourObject *object = [noti object];
}