简化...常见的NSNotification错误?
建筑物有一个公寓对象的数组。每个公寓都有一个currentTenant。这些租户是Person类型的。请注意,currentTenant没有对公寓的引用,因此无法将信息发回链接。
当租客有一个管道的问题,他提出了一个NSNotification:
[nc postNotificationName:@"PlumbingIssue" object:self];
每间公寓遵守通知只能从它自己目前的租户(这是建立在公寓建成时,之前还有一个目前的租户):
[nc addObserver:self selector:@selector(alertBuildingManager:) name:@"PlumbingIssue" object:[self currentTenant];
当公寓从它自己的currentTenant收到通知时,它发送它自己的通知,“PlumberRequired”,与公寓号码和一个NSDictionary的currentTenant一起。
公寓观察这些通知,它会从任何公寓(或其他物体):
[nc addObserver:self selector:@selector(callPlumber) name:@"PlumberRequired" object:nil];
有什么我可以得到根本上的错误吗?现在发生的事情是,公寓正在接收来自任何和所有currentTenants的通知,而不是它自己的。
对不起,实际的代码有点太难以发布。只是想知道在观察来自特定发件人的通知方面是否存在差距?
有趣。如果我可以保证在发布通知时总是有当前的Tenant? currentTenant频繁更改,但总是有一个。 – 2010-05-14 00:09:26
通知发布时,但注册通知时无关紧要。如果当前租户为零,则您将注册所有可能发送租户的所有租户的所有PlumbingIssue通知。基本上,当房客入住时,注册他的通知;当他搬出去时,将他们从他们身上移开。 – 2010-05-14 02:24:32