dispatch_queue_t有什么区别! dispatch_queue_t?
What is the difference between dispatch_queue_t! and dispatch_queue_t?
headers 说 dispatch_get_global_queue
returns global queue
或 NULL
.
* @result
* Returns the requested global queue or NULL if the requested global queue
* does not exist.
*/
@available(OSX 10.6, *)
@warn_unused_result
public func dispatch_get_global_queue(identifier: Int, _ flags: UInt) -> dispatch_queue_t!
为什么 return 的值是 dispatch_queue_t!
而不是可选的 dispatch_queue_t?
dispatch_queue_t!
是可选的,但它是隐式解包的(使您不必在每次使用时都手动解包)。
当您在 Cocoa API 中看到隐式展开的可选值时,有时这只是意味着它们还没有审计特定的 API 的可空性。或者他们可能只是想让您不必自己手动打开可选的包装。或者这可能是 GCD 对象使用 non-standard 接口(它 returns ARC-compatible 对象但不使用通常的 Objective-C *
对象引用)的产物,所以也许 Swift 桥接不能优雅地处理它。
headers 说 dispatch_get_global_queue
returns global queue
或 NULL
.
* @result
* Returns the requested global queue or NULL if the requested global queue
* does not exist.
*/
@available(OSX 10.6, *)
@warn_unused_result
public func dispatch_get_global_queue(identifier: Int, _ flags: UInt) -> dispatch_queue_t!
为什么 return 的值是 dispatch_queue_t!
而不是可选的 dispatch_queue_t?
dispatch_queue_t!
是可选的,但它是隐式解包的(使您不必在每次使用时都手动解包)。
当您在 Cocoa API 中看到隐式展开的可选值时,有时这只是意味着它们还没有审计特定的 API 的可空性。或者他们可能只是想让您不必自己手动打开可选的包装。或者这可能是 GCD 对象使用 non-standard 接口(它 returns ARC-compatible 对象但不使用通常的 Objective-C *
对象引用)的产物,所以也许 Swift 桥接不能优雅地处理它。