我的ios应用程序遇到了一些问题。它处理Apple推送通知(APN)和一切但是,我的应用程序处理它appDelegate.m
问题是,如果用户有通知,我想创建一个按钮来改变颜色,所以我搜索了一种方法来做到这一点我找到了“Run Loop”,这是否可能在一个辅助线程中有一个Run Loop如果有新通知,无限检查? (每次验证之间等待5/10秒)我真的不知道如何宣布它既不能单独使用它。 (我对xCode很新,并且对应用程序的其余部分使用AFNetworking异步方法,所以我对线程和co不太好。)
如果有人能够给我一种在我的应用程序中实现简单运行循环的方法,那真的很棒。
谢谢!
编辑:我有一个用户个人资料的白色按钮,我希望它在用户收到通知时更改为红色,该按钮已经声明并在viewController中工作,但我无法将其链接到appDelegate,这就是为什么我要求做一个可以处理appDelegate发送的BOOL的RunLoop,我的视图只在viewDidLoad中执行(当应用程序在后台等时不能正常工作......)答案 0 :(得分:1)
我真的不明白为什么你需要一个Run循环?
您可以使用NSNotificationCenter
。 https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/nsnotificationcenter_Class/Reference/Reference.html
<强> AppDelegate.m 强>
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive) {
[[NSNotificationCenter defaultCenter] postNotificationName:@"didRecieveNotification" object:nil userInfo:userInfo];
}
}
添加按钮作为观察者的ViewController:
- (void)viewDidLoad {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:@"didRecieveNotification" object:nil];
}
-(void)handleNotification:(NSNotification *)notification
{
YourButton.backgroundColor = [UIColor redColor];
}