在编译时检测拼写错误而不是在Swift中的运行时?

时间:2015-03-11 14:47:47

标签: xcode swift

假设您希望每次UIPinchGestureRecognizer识别捏合手势时调用函数doPinch。这可以通过以下方式完成:

override func viewDidLoad() {
        super.viewDidLoad()
   let pinchGesture = UIPinchGestureRecognizer(target: self, action: "doPinch:")
}

func doPinch(gesture: UIPinchGestureRecognizer) {
  // do something
}

前者工作正常,但如果我重构doPinch的名称或者如果我在UIPinchGestureRecognizer构造函数中拼错动作名称,该怎么办?这样编译工作正常,但我会收到运行时错误。这很糟糕,因为必须能够在编译时检查方法名称拼写是否正确。

第二个例子:

如果您从资产目录中引用图像,我必须像这样引用它:

 let image = UIImage(named: "yosemite-meadows")

同样,它编译的问题相同,但如果图像名称有拼写错误,我会收到运行时错误。

如何在编译时而不是在运行时检测到拼写错误?

1 个答案:

答案 0 :(得分:0)

帕特里克·休斯为Cocoa Is My Girlfriend写作,为图像,字符串名称问题提供了解决方案。这是一个Xcode集成解决方案,但最终脚本可能需要调整才能生成Swift特定文件。

http://www.cimgf.com/2013/01/29/down-with-magic-strings/#more-2009