Ios cfNotificationCenter在Swift中添加观察者
在Ios cfNotificationCenter在Swift中添加观察者,ios,iphone,swift,Ios,Iphone,Swift,在Swift中是否有CFNotificationCenterAddObserver的替代品? 在中,我只找到了对Objective-C的引用,但找不到任何与Swift一起使用的相关代码。有什么想法吗 我试图在Objective-C中编写的代码如下: CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, displayStatusChang
Swift
中是否有CFNotificationCenterAddObserver
的替代品?
在中,我只找到了对Objective-C的引用,但找不到任何与Swift一起使用的相关代码。有什么想法吗
我试图在Objective-C中编写的代码如下:
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),
NULL,
displayStatusChanged,
CFSTR("com.apple.iokit.hid.displayStatus"),
NULL,
CFNotificationSuspensionBehaviorDeliverImmediately);
编辑:我在中尝试使用的不是
NSNotification
(),而是CFNotification
()。CFNotificationCenterAddObserver现在在Swift中可用。看
func CFNotificationCenterAddObserver(uCenter:CFNotificationCenter!,
_观察员:非安全指针,
_回调:CFNotificationCallback,
_名称:CFString!,
_对象:UnsafePointer,
_暂停行为:CFNotificationSuspensionBehavior)
@martin-r您标记为重复的问题与另一个主题有关。请您复习一下好吗?您的回答是对的-我已经重新打开了问题。CFNotificationCenterGetDarwinNotifyCenter()和CFNotificationCenterRemoveObserver()在Swift中可用,但CFNotificationCenterAddObserver()不可用。(我的猜测是“回调函数”没有翻译成Swift。)你可能应该在苹果公司提交一份bug报告。@MartinR我认为这不是bug。我从一个苹果公司的人那里得知,他们只是希望你进入C来传递回调函数。@matt:好的,谢谢你提供的信息。-(但将CFNotification函数的一个子集公开给Swift并没有多大意义。)
func CFNotificationCenterAddObserver(_ center: CFNotificationCenter!,
_ observer: UnsafePointer<Void>,
_ callBack: CFNotificationCallback,
_ name: CFString!,
_ object: UnsafePointer<Void>,
_ suspensionBehavior: CFNotificationSuspensionBehavior)