【问题标题】:Swift Dictionary in UILocalNotification userinfoUILocalNotification 用户信息中的 Swift 字典
【发布时间】:2014-09-09 18:56:33
【问题描述】:

当我尝试设置 UILocalNotification 的用户信息字典时,我不明白为什么 XCode 会返回错误“'@lvalue $T7' 与 (NSObject, AnyObject)' 不同”。这是示例:

var medicine: String?
var notification = UILocalNotification()
notification.userInfo["medicine"] = medicine

这不是我第一次遇到字典问题。我不明白苹果用 xcode 6 beta 3 改变了什么。

我尝试了很多演员,但我不明白问题出在哪里。

【问题讨论】:

    标签: ios xcode dictionary swift uilocalnotification


    【解决方案1】:

    您正在创建一个新的 UILocalNotification,因此它的 userInfo 为 nil;没有什么可以投射的。如果您想将 userInfo 视为 Swift 字典(正如您尝试做的那样),则必须将其创建为某种明确的 Swift 字典类型。此外,您需要medicine 的实际值,而不仅仅是未初始化的类型。例如:

    var userInfo = [String:String]()
    let medicine = "SomeMedicine"
    userInfo["medicine"] = medicine
    notification.userInfo = userInfo
    

    【讨论】:

    • 我有 2 个问题:1) 如果我的 var 药物尚未初始化怎么办? 2)我的字典是否只有字符串类型的键值?例如,我可以有 string-int 键值吗?
    • (1) 没有意义。如果你没有 var medicine 那么你就不能构造 userInfo 字典,那么我们为什么在这里呢? (2) 它是斯威夫特。如果你想要一个 Swift 字典,你必须声明一个 one type 的字典。但是当然,既然这个字典注定要交给Objective-C,那类型可以是AnyObject
    猜你喜欢
    • 2011-11-26
    • 2015-10-27
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 2015-04-04
    • 2014-09-05
    • 1970-01-01
    相关资源
    最近更新 更多