我正在尝试为CFNotificationCenter
设置观察服务器。
名称
要观察的通知的名称。如果为NULL,则针对对象发布的任何通知调用回调。如果center是达尔文的通知中心,则此值不能为NULL。
据我了解,NULL
在Swift中并不存在。那么这个论点应该是什么呢?
以下代码可正常编译,但空白字符串不是NULL
:
CFNotificationCenterAddObserver(
CFNotificationCenterGetDistributedCenter(),
UnsafeMutableRawPointer?.none,
receiveNotification,
"" as CFString,
UnsafeRawPointer?.none,
CFNotificationSuspensionBehavior.deliverImmediately
)
我尝试过CFString?
,NSNull
和NSNull as String
,但编译器抱怨。
我误解了文档吗?如何为参数paramenter提供NULL值?
来自(Objective-)C的空指针是Swift中的可选指针,比较SE-0055 Make unsafe pointer nullability explicit using Optional。
因此,在Swift中,您传递nil
作为名称,以便调用该对象发布的任何通知。