我必须使用正则表达式来提取消息还是有属性?
Posted
技术标签:
【中文标题】我必须使用正则表达式来提取消息还是有属性?【英文标题】:Do I have to use regex to extract message or is there property? 【发布时间】:2016-12-12 07:42:00 【问题描述】:我在推送通知的委托中定义了以下函数。
func pushManager(pushManager: AWSPushManager, didReceivePushNotification userInfo: [NSObject : AnyObject])
print("Received a Push Notification: \(userInfo.description)")
let x = userInfo.description
每当我的应用收到推送通知时,都会调用此函数。 userInfo 的 description 属性包含推送消息,格式如下:“[aps: \n alert = ;\n]”。我想知道获取消息部分的最佳方法是什么。我可以使用正则表达式来提取消息部分,但我不确定与消息匹配的模式。这甚至是正确的方法吗?我在想是否有一个函数可以返回干净的消息。
【问题讨论】:
【参考方案1】:aps 的格式是 JSON。您需要将“userInfo”序列化为 JSON 格式。为此,您可以使用 SwiftyJSON 之类的框架:
let json = JSON(userInfo)
现在你可以像这样访问 APS
print(json["aps"])
您可以使用标准函数(包含在 Swift 中)初始化 JSON,但是,您需要先将 userInfo 转换为数据。
【讨论】:
谢谢。集成后,我得到“使用比以前的架构 armv7 文件 (2.0) 更新版本的 Swift 语言 (3.0) 编译”。可能是因为我的项目使用的是旧版本的 swift 2.3,并且库是用 Swift 3 构建的。我无法升级我的项目,因为 Amazon Web Service 框架在 Swift 2 中,升级会破坏一切。 您可以使用默认函数来序列化 JSON以上是关于我必须使用正则表达式来提取消息还是有属性?的主要内容,如果未能解决你的问题,请参考以下文章
必须通过剥离符号 ^ 字符的最后一次出现以通过正则表达式提取结束来提取单词的开头