Swift 4解决错误:UIApplication.registerForRemoteNotifications() must be called from main thread only

Xcode 9 (iOS 11)注册推送消息报错:

UIApplication.registerForRemoteNotifications() must be called from main thread only

解决方法

Swift 4

DispatchQueue.main.async(execute: {
   UIApplication.shared.registerForRemoteNotifications()
}) 

Objective C

dispatch_async(dispatch_get_main_queue(), ^{
   [[UIApplication sharedApplication] registerForRemoteNotifications];
});

版权声明:著作权归作者所有。

相关推荐

Swift 4:KeyPath

Swift 4对KeyPath做了很大的改进。改进后的为类型安全的KeyPath。Swift 2的KeyPath示例class Person: NSObject {   var name: String = ""   init(name: 

Swift 4 Codable协议 - 基本用法

Swift 4新增了Codable协议,它是一个组合协议,包含Encodable和Decodable两个协议。代码定义如下:/// A type that can convert itself into and out of an external repre

配置Nginx解决Angular 4刷新路由重新加载报404错误

Angular重新加载页面会报404,原因可分为三种:1、路由不存在2、Angular使用html5模式的路由,需要把所有路由的请求映射到index.html配置Nginx如下:location / {     root /var/html;     try_files $uri $uri/ /index.html =404;   } 其

Swift3/Swift4 转换Html为纯文本

Swift 3或者Swift 4 添加String扩展,把Html字符串转换为纯文本Xcode 9 beta • Swift 4extension String {     var html2AttributedString: NSAttr