在PubNub Swift中访问PNMessageResult

看到这个链接

基于以下function,我能够收到答复,

func client(client: PubNub!, didReceiveMessage message: PNMessageResult!) { println(message) 

但是,我只能以data.data的forms访问数据,格式为PNMessageData。

即使按照以下格式返回数据:

 { message = "{}"; subscribedChannel = 123; timetoken = 14392105288780634;} 

如何访问message.data(PNMessageData)中的消息的值?

我写了简单的方法来parsingPNMessageResult

 func client(_ client: PubNub, didReceiveMessage message: PNMessageResult) { //Message Received on Channel: let channel = message.data.channel //Message Received: guard let messageData = message.data.message as? [String : AnyObject] else { return } //Event: guard let event:String = messageData["event"] as? String let data:AnyObject = messageData["data"] else { return } guard let dict = data as? NSDictionary else { fatalError("Couldn't parse pubnub message") } //This will be message in dictionary let mutableDict = dict.mutableCopy() as! NSMutableDictionary } 

您非常接近访问数据。 SDK序列化接收到的JSON,并将消息存储为应该是字典的message.data.message上的字典。

尝试这个:

 func client(client: PubNub!, didReceiveMessage message: PNMessageResult!) { let dictionary: AnyObject = message.data.message println(dictionary["accelertiony"]); println(dictionary["accelerationx"]); }