我试图关注Apple Developer上的FoodTracker教程。现在我在#34; Implementing Navigation"。
部分看起来本教程是为以前版本的Swift编写的,因为代码有时无需更改被覆盖的方法签名。
以下是一个例子:
// This method lets you configure a view controller
// before it's presented.
override func prepareForSegue(segue: UIStoryboardSegue,
sender: AnyObject?) {
在我的Xcode(8.0)版本上,该方法必须更改为:
override func prepare(for: UIStoryboardSegue, sender: Any?)
{
...以便它匹配需要重写的父类/协议中的适当方法。
本教程继续使用以下代码行:
if saveButton == sender {
...会在主题行上产生错误。
我花了最后几个小时试图解决这个问题,在线搜索,试图找出可选发件人为什么会这样做?不匹配UIBarButtonItem但是不成功,所以作为我在这里发布的最后手段。我一直试图关注iOS开发的几本书,但我也遇到了代码问题(在当前版本的Xcode(8.0)/ Swift(3)中没有工作,所以我决定花时间在Apple官方教程上。
提前感谢您提供的任何帮助。
答案 0 :(得分:6)
您是否尝试过将发件人(Any?)作为UIBarButtonItem投射?
if saveButton == (sender as? UIBarButtonItem)