【问题标题】:Swift: using the value of a ui element in a dictionarySwift:使用字典中 ui 元素的值
【发布时间】:2014-06-04 21:48:11
【问题描述】:

我有一个字典参数如下

var params : Dictionary<String,AnyObject> = [
 "name"          :   self.name.text
]

我可以将 self.name.text 分配给一个变量并查看它的值。

但是当我这样做时

 println(params)

我在运行时得到一个 EXC_BAD_ACCESS

我可以用下面的“as String”来修复它

var params : Dictionary<String,AnyObject> = [
    "name"          :   self.name.text as String
]

有谁知道我为什么需要演员来停止 EXC_BAD_ACCESS?

【问题讨论】:

  • 这只是 UI 元素的情况吗?非 UI 对象的属性也会发生这种情况吗?
  • 如果将字典声明为 Dictionary 会怎样?
  • 我可以声明我的控制器类的属性并将其分配给 name 的值,没有例外
  • Dictionary 很有趣,但是我需要这本字典也包含双打
  • 另一种方法是在 println 上投射 ...尝试println(String(params))

标签: ios dictionary exc-bad-access swift xcode6


【解决方案1】:

来自printdocumentation

您为 object 提供的值必须符合 Printable 或 DebugPrintable 协议:

所以我认为NSString 不符合这些协议中的任何一个。

下面的代码也会产生同样的错误

var str = NSString()
println(str as String) // fine
println(str) // fails

【讨论】:

  • 这当然看起来像答案,但你知道为什么根据 Xcode:UIKit/UITextField 文本属性是一个字符串!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
相关资源
最近更新 更多