gpt4 book ai didi

objective-c - 如何使用 NSUserNotification 在单击一个按钮时显示用户通知两次?

转载 作者:行者123 更新时间:2023-12-03 17:10:36 24 4
gpt4 key购买 nike

让我先描述一下场景,然后再描述问题:

我创建了一个使用 NSUserNotification 显示用户通知的函数

    -(void)notify:(NSString*) message {

NSUserNotification *notification = [[NSUserNotification alloc] init];
notification.title = @"TechHeal";
notification.informativeText = message;
//notification.soundName = NSUserNotificationDefaultSoundName;

[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification];
}

我有一个按钮可以从服务器获取详细信息。在按钮单击的开始和结束处,我调用了通知,如下所示:

-(IBAction)get2000Rows:(id)sender{

[self notify:@"Please wait..."];

//some code that takes a while to run. like 10 minues :P

[self notify:@"Thanks for waiting..."];

}

现在,问题是第一个通知“请稍候...”在按钮单击时未显示,但最后一个通知完美显示。

我还尝试在单独的线程中调用 Notify 函数,但效果不佳。 (如下所示)

dispatch_queue_t backgroundQueue = dispatch_queue_create("com.mycompany.myqueue", 0);

dispatch_async(backgroundQueue, ^{

[self notify:@"Please wait..."];


dispatch_async(dispatch_get_main_queue(), ^{
});
});

非常感谢您的帮助。预先感谢您。

最佳答案

问题是您在与代码的 UI 部分相同的线程上运行 10 分钟 代码。所以你应该使用这个来分隔它们:

-(IBAction)get2000Rows:(id)sender{

[self notify:@"Please wait..."];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

//some code that takes a while to run. like 10 minues :P

dispatch_async(dispatch_get_main_queue(), ^(void) {
[self notify:@"Thanks for waiting..."];
});
});
}

关于objective-c - 如何使用 NSUserNotification 在单击一个按钮时显示用户通知两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31852571/

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