【问题标题】:Switched to swift 2.0 and getting AnyObject error切换到 swift 2.0 并出现 AnyObject 错误
【发布时间】:2016-01-05 11:52:12
【问题描述】:

为什么我得到Cannot convert value of type [AnyObject]! to expected argument type. 我正在尝试将笔尖加载到视图控制器中。

func loadNibNamed(name: String!, owner: AnyObject!, options: [NSObject : AnyObject]!) -> [View1]!{
    NSBundle.mainBundle(loadNibNamed("View1", owner: self, options: nil)).lastObject
}

【问题讨论】:

  • 你不能使用 AnyObject 使用它所属的类名
  • owneroptions 的类别是什么
  • 所以 View1 是笔尖的名称,如果这就是您所要求的。

标签: ios swift swift2 nib loadnibnamed


【解决方案1】:

我认为这是 Swift2.0 中的正确代码

NSBundle.mainBundle().loadNibNamed("View1", owner: self, options: nil).last

lastObject 用于 Swift1.2,现在在 swift2.0 中不可用,使用 last 代替。

要使用它,你可以将它转换成 UIView。

【讨论】:

    【解决方案2】:

    试试这个:

    func loadNibNamed(name: String, owner: AnyObject, options: [NSObject : AnyObject]) -> [AnyObject] {
            return NSBundle.mainBundle().loadNibNamed(name, owner: owner, options: options)
    }
    

    【讨论】:

    • 它没有将笔尖放在视图控制器中
    • @blee:我只是更正了您的代码。如果您想从 xib 文件自定义视图,这是您的参考 stackoverflow.com/a/31957214/3614616
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多