我试图使用swift构建一个简单的计算器应用程序。我创建了两个带有基本和高级选项的视图控制器。在Obj-C早期曾经这样做过
[[AViewController alloc] initWithNibName:@"nibName" bundle:nil]
在swift中我甚至无法导入我的新视图控制器。但我仍然可以声明为var aViewController:AViewController?
并使用它。但是我被困在加载笔尖
我尝试使用AViewController(nibName: "nibname", bundle: nil)
,但所有内容都会导致编译错误Could not find an overload for __conversion that accepts the supplied arguments
答案 0 :(得分:3)
试试这个,
AViewController(nibName: "nibname", bundle: NSBundle.mainBundle())
这对我来说非常适合。
声明: SWIFT ( UINib 类参考)
init(nibName name: String!,
bundle bundleOrNil: NSBundle!) -> UINib
声明: SWIFT ( UIViewController 类参考)
init(nibName nibName: String!,
bundle nibBundle: NSBundle!)
感叹号有效地说,“我知道这个选项肯定有价值;请使用它。“这被称为强制解包可选的值。
这就是原因,我们无法通过" nil"作为第二个参数,即捆绑
干杯..!
答案 1 :(得分:2)
当nil
用NSBundle.mainBundle()
代替它时,{{1}}看起来像是一个问题。