dispatch_get_main_queue() Swift 3 转换后的 objc 警告
dispatch_get_main_queue() objc warning after Swift 3 conversion
我将我的 Objective C + Swift 2.x 代码转换为 Swift 3 in Xcode 8. 转换代码后我收到这些新警告我不知道解决它是否安全 ignore/how。
我的Swift3代码:
func getUserNotificationFromServer(_ completionQueue:DispatchQueue = DispatchQueue.main,callback: @escaping (_ succeeded: Bool, _ response: AnyObject?) -> Void) {
Objective C调用此函数的代码
[wsManager getUserFavouritesFromServer:dispatch_get_main_queue() callback:^(BOOL succeeded, id _Nullable response) {
我正在收到警告
Incompatible pointer types sending 'dispatch_queue_t _Nonnull' (aka
'NSObject *') to parameter of type
'OS_dispatch_queue * _Nonnull'
有什么想法吗?
我不明白为什么,但是 DispatchQueue
在生成的 {ProjectModuleName}-Swift.h 中暴露为 OS_dispatch_queue *
.
(最好发送 bug report 给 Apple。)
据我测试,只要按照消息中的建议进行强制转换就会抑制警告,并且代码按预期工作:
[wsManager getUserNotificationFromServer:(OS_dispatch_queue * _Nonnull)dispatch_get_main_queue()
callback:^(BOOL succeeded, id _Nullable response) {
我将我的 Objective C + Swift 2.x 代码转换为 Swift 3 in Xcode 8. 转换代码后我收到这些新警告我不知道解决它是否安全 ignore/how。
我的Swift3代码:
func getUserNotificationFromServer(_ completionQueue:DispatchQueue = DispatchQueue.main,callback: @escaping (_ succeeded: Bool, _ response: AnyObject?) -> Void) {
Objective C调用此函数的代码
[wsManager getUserFavouritesFromServer:dispatch_get_main_queue() callback:^(BOOL succeeded, id _Nullable response) {
我正在收到警告
Incompatible pointer types sending 'dispatch_queue_t _Nonnull' (aka 'NSObject *') to parameter of type 'OS_dispatch_queue * _Nonnull'
有什么想法吗?
我不明白为什么,但是 DispatchQueue
在生成的 {ProjectModuleName}-Swift.h 中暴露为 OS_dispatch_queue *
.
(最好发送 bug report 给 Apple。)
据我测试,只要按照消息中的建议进行强制转换就会抑制警告,并且代码按预期工作:
[wsManager getUserNotificationFromServer:(OS_dispatch_queue * _Nonnull)dispatch_get_main_queue()
callback:^(BOOL succeeded, id _Nullable response) {