从userInfo Dictionary获取字符串

从userInfo Dictionary获取字符串,第1张

概述我有来自UILocalNotification的userInfo字典.使用隐式展开时是否有一种简单的方法来获取String值? if let s = userInfo?["ID"] 给我一个AnyObject,我必须强制转换为字符串. if let s = userInfo?["ID"] as String 给我一个关于StringLiteralConvertable的错误 只是不想声明两个变量来 我有来自UIlocalnotification的userInfo字典.使用隐式展开时是否有一种简单的方法来获取String值?

if let s = userInfo?["ID"]

给我一个AnyObject,我必须强制转换为字符串.

if let s = userInfo?["ID"] as String

给我一个关于StringliteralConvertable的错误

只是不想声明两个变量来获取字符串 – 一个用于解包的文字和另一个用于转换字符串的var.

编辑

这是我的方法.这也不起作用 – 我得到(NSObject,AnyObject)在if语句中不能转换为String.

for notification in schedulednotifications  {    // optional chainging     let userInfo = notification.userInfo    if let ID = userInfo?[ "ID" ] as? String    {      println( "ID found: " + ID )    }    else    {      println( "ID not found" )    }  }

我没有在我的问题中,但除了这种方式工作,我想真的有

if let s = notification.userInfo?["ID"] as String
解决方法 你想使用as使用条件?:

(注意:这适用于Xcode 6.1.对于Xcode 6.0,请参见下文)

if let s = userInfo?["ID"] as? String {    // When we get here,we kNow "ID" is a valID key    // and that the value is a String.}

此构造从userInfo安全地提取字符串:

>如果userInfo为nil,userInfo?[“ID”]由于可选链接而返回nil,条件转换返回String类型的变量?它的值为零.然后,可选绑定失败,并且未输入块.
>如果“ID”不是字典中的有效键,userInfo?[“ID”]返回nil,它会像前一种情况一样继续.
>如果值是另一种类型(如Int),则条件转换为?将返回零,并像上述情况一样继续.
>最后,如果userInfo不是nil,并且“ID”是字典中的有效键,并且值的类型是String,则条件转换返回可选字符串String?包含字符串.可选绑定如果let然后解包String并将其分配给将具有String类型的s.

对于Xcode 6.0,您还必须做一件事.您需要有条件地转换为Nsstring而不是String,因为Nsstring是一个对象类型而String不是.他们显然改进了Xcode 6.1中的处理,但对于Xcode 6.0,请执行以下 *** 作:

if let s:String = userInfo?["ID"] as? Nsstring {    // When we get here,we kNow "ID" is a valID key    // and that the value is a String.}

最后,解决你的最后一点:

for notification in schedulednotifications  {      if let ID:String = notification.userInfo?["ID"] as? Nsstring      {          println( "ID found: " + ID )      }      else      {          println( "ID not found" )      }  }
总结

以上是内存溢出为你收集整理的从userInfo Dictionary获取字符串全部内容,希望文章能够帮你解决从userInfo Dictionary获取字符串所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1017464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存