加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xcode 6中的自定义NSValueTransformer与swift

发布时间:2020-12-15 01:56:16 所属栏目:百科 来源:网络整理
导读:有没有人成功地在xcode 6测试版中使用swift实现了一个自定义的NSValueTransformer? 我有以下快速课: import Foundationclass myTransformer: NSValueTransformer { let amount = 100 override class func transformedValueClass() - AnyClass! { return NS
有没有人成功地在xcode 6测试版中使用swift实现了一个自定义的NSValueTransformer?

我有以下快速课:

import Foundation

class myTransformer: NSValueTransformer {

  let amount = 100

  override class func transformedValueClass() -> AnyClass!
  {
    return NSNumber.self
  }

  override func transformedValue(value: AnyObject!) -> AnyObject! {
    return value.integerValue + amount
  }
}

所以这个变压器应该做的是,在gui中加一个给定的值100。

如您所见,变压器类现在显示在IB中的Value Transformer下拉列表中。

但是如果我选择这个变压器,应用程序会崩溃:

2014-08-27 20:12:17.686 cdTest[44134:303] 
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',reason: 'Cannot find value transformer with name newTransformer'

在AppDelegate中注册该变压器是否正确

override class func initialize() {
  let newTransformer = myTransformer()
}

有谁知道这整个东西应该如何工作?

亲切的问候!
马丁

解决方法

初始化newTransformer后,您还应该包括以下行:

NSValueTransformer.setValueTransformer(newTransformer,forName: "myTransformer")

然后在您的Interface Builder中,您应该使用myTransformer而不是Value Transformer下拉列表下的newTransformer。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读