我为 Notification.Name
创建了一个扩展,如下所示:
public extension Notification.Name {
public static let blahblahblah = Notification.Name(rawValue: "blahblahblah")
}
现在我想在 Objective-C 中使用这个扩展,但即使它是公开的也无法访问。
如何在 Objective-C 和 Swift 中访问和使用这个 Swift 扩展?
以前我在 Objective-C 中使用常量值,但现在我正在升级我的代码并想使用这个扩展。
最佳答案
我在 swift 文件中的扩展
extension Notification.Name {
static let purchaseDidFinish = Notification.Name("purchaseDidFinish")
}
@objc extension NSNotification {
public static let purchaseDidFinish = Notification.Name.purchaseDidFinish
}
// OBJECTIVE-C
#import YourProjectName-Swift.h
[NSNotificationCenter.defaultCenter addObserver:self selector:@selector(purchaseDidFinish) name:NSNotification.purchaseDidFinish object:nil];
// SWIFT
NotificationCenter.default.addObserver(self, selector: #selector(purchaseDidFinish), name: .purchaseDidFinish, object: nil)
@objc func purchaseDidFinish(notification: Notification) {
print("purchaseDidFinish")
}
@leanne 的回答非常有帮助
关于ios - 如何使用从 Swift 到 Objective-C 的 Notification.Name 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46818582/