dispatch_queue_t有什么区别!和dispatch_queue_t?

时间:2016-01-16 18:52:17

标签: swift grand-central-dispatch

标题说dispatch_get_global_queue返回global queueNULL

 * @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!

为什么返回值为dispatch_queue_t!而不是可选dispatch_queue_t?

1 个答案:

答案 0 :(得分:4)

dispatch_queue_t!是一个可选项,但它是一个隐式解包的(省去了每次使用时都必须手动解包)。

当您在Cocoa API中看到隐式解包的选项时,有时它只是意味着他们尚未审核该特定API的可空性。或许他们只是想让您免于自己手动拆开可选项。或者它可能是GCD对象使用非标准接口的工件(它返回ARC兼容的对象,但不使用通常的Objective-C *对象引用),所以也许Swift桥接无法处理它正常。