无法转换类型' UIBarButtonItem的值!'预期参数类型' _OptionalNilComparisonType'

时间:2016-10-18 21:01:41

标签: swift xcode

我试图关注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官方教程上。

提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:6)

您是否尝试过将发件人(Any?)作为UIBarButtonItem投射?

if saveButton == (sender as? UIBarButtonItem)