小编zoo*_*ter的帖子

如何在Swift for iOS中正确使用CFNotificationCenterAddObserver

拉我的头发去CFNotificationCenterAddObserver斯威夫特工作.

        CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),
        UnsafePointer<Void>(self),
        iosLocked,
        "com.apple.springboard.lockcomputer" as CFString,
        nil,
        CFNotificationSuspensionBehavior.DeliverImmediately)
Run Code Online (Sandbox Code Playgroud)

iOS的文档有它上市,我已经尝试了回调,并没有成功的不安全指针无数的迭代.

上面的函数调用导致出现此错误消息,这似乎是正确的init:

Cannot invoke 'init' with an argument list of type '(CFNotificationCenter!, $T4, () -> (), CFString, NilLiteralConvertible, CFNotificationSuspensionBehavior)'
Run Code Online (Sandbox Code Playgroud)

我也尝试将objc桥接到这里,但是没有成功.

这是我的桥梁:

LockNotifierCallback.h:

#import <Foundation/Foundation.h>

@interface LockNotifierCallback : NSObject

+ (void(*)(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo))notifierProc;

@end
Run Code Online (Sandbox Code Playgroud)

和LockNotifierCallback.m:

#import "LockNotifierCallback.h"

static void lockcompleteChanged(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) {
    NSLog(@"success");
}

@implementation LockNotifierCallback


+ (void(*)(CFNotificationCenterRef center, …
Run Code Online (Sandbox Code Playgroud)

notifications darwin ios swift

11
推荐指数
2
解决办法
5406
查看次数

标签 统计

darwin ×1

ios ×1

notifications ×1

swift ×1