Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift中的通知返回字典中的用户信息_Swift_Notifications_Ios8_Xcode6 - Fatal编程技术网

Swift中的通知返回字典中的用户信息

Swift中的通知返回字典中的用户信息,swift,notifications,ios8,xcode6,Swift,Notifications,Ios8,Xcode6,我有一个返回字典的通知,很像objective-c,但是我没有得到我期望的结果 下面是发布通知的方法。它实际上返回日期选择器的结果(日期) @IBAction func dateOfBirthAction(sender: AnyObject) { println("Date: \(dateOfBirthPicker.date)") var selectedDateDictionary = [dateOfBirthPicker.date, "dateOfBirth"]

我有一个返回字典的通知,很像objective-c,但是我没有得到我期望的结果

下面是发布通知的方法。它实际上返回日期选择器的结果(日期)

@IBAction func dateOfBirthAction(sender: AnyObject) {

    println("Date: \(dateOfBirthPicker.date)")

    var selectedDateDictionary = [dateOfBirthPicker.date, "dateOfBirth"]

    NSNotificationCenter.defaultCenter().postNotificationName("dateOfBirth", object: nil, userInfo: [NSObject():selectedDateDictionary])

}
以下是通知观察员:

override func viewDidLoad() {
    super.viewDidLoad()

    NSNotificationCenter.defaultCenter().addObserver(self, selector: "dateOfBirth:", name: "dateOfBirth", object: nil)

}

func dateOfBirth(notification: NSNotification) {

    println("userInfo: \(notification.userInfo)")

    let returnedDateOfBirth = notification.userInfo!["dateOfBirth"] as NSString
    println("returnedDateOfBirth: \(returnedDateOfBirth)")

    playerInformationDateOfBirthLabel.text  = returnedDateOfBirth
}
我在行
let returnedDateOfBirth:String=notification.userInfo[“dateOfBirth”]

userInfo: Optional([<NSObject: 0x7fb15a44a880>: <_TtCSs23_ContiguousArrayStorage00007FB15A4D4380 0x7fb15a4206a0>(
2014-09-18 12:07:07 +0000,
dateOfBirth
)
])
fatal error: unexpectedly found nil while unwrapping an Optional value

您的
userInfo
字典错误

你有:

[NSObject():selectedDateDictionary]
尝试将
userInfo
设置为
userInfo:selectedDateDictionary
,如下所示:

NSNotificationCenter.defaultCenter().postNotificationName("dateOfBirth", object: nil, userInfo: selectedDateDictionary)
错误告诉您,由于
returnedDateOfBirth:String
而需要
字符串,但您返回
[NSObject():selectedDateDictionary]
试试看 只有字典可以传递给userInfo

        var pageDict: Dictionary<String,String>! = [
            "dateOfBirth": "11/5/1987date",
        ]
        NSNotificationCenter.defaultCenter().postNotificationName("dateOfBirth", object: nil, userInfo: pageDict)

您的建议(正如我最初所做的)给出了一个错误:call中的额外参数“userInfo”错误是什么?另外,我刚刚注意到您的
selectedDateDictionary
没有正确实例化。如果您想要一本字典,您需要执行
var selectedDateDictionary=[“dateOfBirth”:dateOfBirthPicker.date]
非常感谢,这解决了字典和postNotificationName的问题。然而,现在我在
let returnedDateOfBirth=notification.userInfo上得到了一个EXC_断点![“出生日期”]作为NSString
line@PaulS. 使用对象。NSNotificationCenter.defaultCenter().postNotificationName(“出生日期”,对象:pageDict,用户信息:nil)第一个错误已经消失,
println(“用户信息:\(notification.userInfo)”)
向您展示了什么?
        var pageDict: Dictionary<String,String>! = [
            "dateOfBirth": "11/5/1987date",
        ]
        NSNotificationCenter.defaultCenter().postNotificationName("dateOfBirth", object: nil, userInfo: pageDict)
     NSNotificationCenter.defaultCenter().postNotificationName("dateOfBirth", object: pageDist, userInfo: nil)