anyobject在SWIFT中没有一个名为objectforkey的元素

时间:2015-03-05 12:11:50

标签: ios xcode swift nsnotifications

我正在尝试从通知中获取objectForKey,但我收到错误:anyobject does not have a membered named objectforkey

我使用的代码是:

func executeAlbum(notification:NSNotification){
        let data = notification.userInfo.objectForKey("data") as [AlbumModel] // ERROR HERE
        self.sources = data
        self.albumTable?.reloadData()
    }

有人可以告诉我它为什么不起作用以及等价物是什么?

由于

2 个答案:

答案 0 :(得分:3)

objectForKey方法是NSDictionary的方法,在您的情况下notification.userInfo返回[NSObject : AnyObject]?,其类型为Dictionary。从" swift dictionary"中获取对象你需要使用它的下标方法,所以:

func executeAlbum(notification:NSNotification){
        let data:[AlbumModel]? = notification.userInfo?["data"] as? [AlbumModel] // ERROR HERE -> Not anymore
        self.sources = data
        self.albumTable?.reloadData()
    }

应该做的工作

答案 1 :(得分:0)

notification.userInfo类型为AnyObject。因此,您无法使用objectForKey(""),因为AnyObject不提供此方法。您可能需要投射notification.userInfo,但我不知道背后是什么。