gpt4 book ai didi

ios - AppDelegate 没有响应 NSNotification

转载 作者:行者123 更新时间:2023-12-01 18:14:48 27 4
gpt4 key购买 nike

我想使用我的应用的 AppDelegate 发布 CRToast 通知

这是我添加观察者的方式。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(noConnectionNotification)
name:@"No_Connection_Available" object:nil];

}

这是它应该调用的方法
-(void)noConnectionNotification{
NSLog(@"received notification");
NSString *notificationString = @"Unable to reach server. Changes will be cached.";
NSDictionary *options = @{kCRToastTextKey : notificationString,
kCRToastNotificationTypeKey : @(CRToastTypeStatusBar),
kCRToastTextAlignmentKey : @(NSTextAlignmentCenter),
kCRToastBackgroundColorKey : [UIColor redColor],
kCRToastAnimationInDirectionKey : @(CRToastAnimationDirectionTop),
kCRToastAnimationOutDirectionKey : @(CRToastAnimationDirectionTop),
kCRToastTimeIntervalKey : @(2),
};
[CRToastManager showNotificationWithOptions:options
completionBlock:nil];
}

以及我如何从不同的类(class)发布通知:
 dispatch_async(dispatch_get_main_queue(), ^{
[[NSNotificationCenter defaultCenter] postNotificationName:@"No_Connection_Available" object:nil];
});
}

该方法不会被调用。如果我让我的各种 View Controller 之一成为观察者,那个会收到通知,但 AppDelegate 不是。是否不可能使 AppDelegate 成为 NSNotification 观察者?

最佳答案

您在收到通知时调用的方法需要有 NSNotification争论。因此,该方法应如下所示:

-(void)noConnectionNotification:(NSNotification*)notification {
NSLog(@"received notification");
NSString *notificationString = @"Unable to reach server. Changes will be cached.";
NSDictionary *options = @{kCRToastTextKey : notificationString,
kCRToastNotificationTypeKey : @(CRToastTypeStatusBar),
kCRToastTextAlignmentKey : @(NSTextAlignmentCenter),
kCRToastBackgroundColorKey : [UIColor redColor],
kCRToastAnimationInDirectionKey : @(CRToastAnimationDirectionTop),
kCRToastAnimationOutDirectionKey : @(CRToastAnimationDirectionTop),
kCRToastTimeIntervalKey : @(2),
};
[CRToastManager showNotificationWithOptions:options
completionBlock:nil];
}

然后,添加观察者应该如下所示:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(noConnectionNotification:)
name:@"No_Connection_Available" object:nil];

}

注意 @selector 中方法名称后面的冒号。称呼。

关于ios - AppDelegate 没有响应 NSNotification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23176125/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com