gpt4 book ai didi

xcode - Swift 3 - 如何使用枚举原始值作为 NSNotification.Name?

转载 作者:行者123 更新时间:2023-12-03 06:07:36 30 4
gpt4 key购买 nike

我正在使用 Xcode 8 beta 5,我正在尝试设置这样的通知枚举

enum Notes: String {
case note1
case note2
}

然后尝试使用它们作为通知名称

NotificationCenter.default.post(name: Notes.note1.rawValue as NSNotification.Name,
object: nil, userInfo: userInfo)

但是我收到错误。

无法将“String”类型的值转换为指定类型“NSNotification.Name”

有解决办法吗,还是我遗漏了什么?它适用于 Xcode 7.3.1

如有任何帮助,我们将不胜感激。

最佳答案

开始吧,使用 Swift 3 和 Xcode 8.0

enum Notes: String {

case note1 = "note1"
case note2 = "note2"

var notification : Notification.Name {
return Notification.Name(rawValue: self.rawValue )
}
}

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

NotificationCenter.default.post(name: Notes.note2.notification ,object: nil, userInfo: nil)
}
}

另一种方式

import UIKit

extension Notification.Name
{
enum MyNames
{
static let Hello = Notification.Name(rawValue: "HelloThere")
}
}

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

NotificationCenter.default.post(name: Notification.Name.MyNames.Hello ,object: nil, userInfo: nil)
}
}

关于xcode - Swift 3 - 如何使用枚举原始值作为 NSNotification.Name?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38889125/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com