我需要创建两个类,两者都应该能够通过NSNotificationCenter方法发送和接收事件.两者都应该有sendEvent和receiveEvent方法:
@implementation Class A
-(void)sendEvent
{
addObserver:--- name:---- object:---
}
-(void)ReceiveEvent
{
postNotificationName: --- object:---
}
@end
Run Code Online (Sandbox Code Playgroud)
与另一个类相同,ClassB也应该能够发送和接收事件.怎么做到呢?
我正计划编写一个小的守护程序,以检测另一个应用程序是否崩溃,并一直在思考系统将发送NSWorkspaceDidTerminateApplicationNotification,但事实并非如此。
假设我不想创建已启动的过程来简单地重新启动崩溃的应用程序,是否可以通过其他方式检测到崩溃?
也许我可以监视系统日志?这似乎是不适当的负担。
是否可以拥有静态NSNotification观察器(如下面的代码)?我遇到了一些问题,我认为这可能是由于我的单例类结构.
我并不总是有一个类实例来监听通知,但是这个类的静态属性仍然适用于我的应用程序的生命周期.
- (id)init {
[super init]
[[NSNotificationCenter defaultCenter] addObserver:[self class]
selector:@selector(action:aNotification:)
name:@"NSSomeNotification"
object:nil];
return self;
}
+ (void)action:(NSNotification *)aNotification {
NSLog( @"Performing action" );
}
Run Code Online (Sandbox Code Playgroud) cocoa objective-c nsnotifications nsnotification nsnotificationcenter
我目前正在玩一个产品管理游戏的NSNotification(或一般的本地通知),该游戏严重依赖于用户的NSDate/Time,然后使用本地通知来提醒产品何时准备就绪.
然而,在我对类似游戏的实验中,人们可以通过简单地向前移动系统时钟来打败这个系统,从而加快游戏速度.
我注意到有些游戏已经停止了这一点,但我认为你通过内部时钟与在线时钟同步并且从不使用iPhone的时钟来做到这一点,但这只是一个猜测,显然这样的系统不起作用,如果你没有互联网接入.
无论如何,我希望有一个走这条路的人可以澄清;
对于依赖用户NSDate/Time的游戏,本地通知(或推送通知)是否足够成熟?
如何防止用户/骗子击败NSNotification/NSDates进行游戏?
是否有文章或框架,或可以解释有关此主题的最佳方法?
我发现虚拟宠物游戏的类似问题,但我仍然对其他建议感兴趣.
我想记录由我的应用程序共享的单个NSNotificationCenter发布的任何NSNotifications.我已经尝试了子类化NSNotificationCenter,意图将日志代码添加到三个post方法,但它返回CFNotification中心的实例而不是我的子类.
当然有一种监控NSNotification发布的方法吗?
编辑/ UPDATE
正如下面的两个答案正确地指出我可以监听所有通知并将它们记录在处理程序中,但处理程序将接收这些通知的顺序远不能保证与它们被分派的顺序相同.如果我可以确定处理程序将始终是第一个被通知的处理程序,这将起作用,但我不能:'观察者接收通知的顺序未定义'来自NSNotification Docs
我用完成处理程序调用rest web servic,如果成功,我发送NSNotification.
问题是如何编写单元测试以声明在成功的情况下发送通知.
任何帮助将不胜感激.
所以我有一个应用程序购买的应用程序.In App购买在FirstViewController中管理.当用户购买产品时,我想向我的MainTableViewController发送通知以重新加载表数据并显示在In App购买中购买的新对象.所以基本上我想要从A类发送到B类的通知,然后B类重新加载tableview的数据.我曾尝试使用NSNotificationCenter,但没有成功,但我知道它可能与NSNotificationCenter我只是不知道如何.
我在viewDidLoad方法中注册了NSNotification .
我应该注销它无论是在viewDidUnload和dealloc使用方法的代码下面?
[[NSNotificationCenter defaultCenter] removeObserver:self];
Run Code Online (Sandbox Code Playgroud)
谢谢.
所以我的目标是通过使用向另一个班级发送通知NSNotificationCenter,我也想object将通知传递给另一个class,我该怎么做?
我需要检查整个应用程序中你的wifi状态是否已经改变.我正在使用Reachability检查wifi状态是否打开.
我已经建立了一个像这样的观察者:
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
Run Code Online (Sandbox Code Playgroud)
问题是我需要将addObserver和removeObserver添加到所有viewcontrollers,并将reachabilityChanged函数添加到所有.
有没有更好的方法然后添加NSNotification我是否检查整个应用程序的无线状态?
需要一些指导和建议.谢谢.