使用didPressRightButton()时的Swift 3错误(SlackTextViewController)

时间:2016-10-04 15:30:28

标签: ios swift3

我正在尝试使用以下代码从SELECT bom.bill_sequence_id, bom.organization_id, msi.segment1 assembly_item_id, bic.operation_seq_num, msic.segment1 component_item FROM bom_bill_of_materials bom LEFT JOIN mtl_system_items msi ON msi.organization_id = bom.organization_id AND msi.inventory_item_id = bom.assembly_item_id AND msi.enabled_flag = 'Y' AND msi.bom_enabled_flag = 'Y' LEFT JOIN bom_inventory_components bic ON bic.bill_sequence_id = bom.common_bill_sequence_id LEFT JOIN mtl_system_items msic ON msic.organization_id = bom.organization_id AND msic.inventory_item_id = bic.component_item_id WHERE bom.organization_id IN (203, 204, 328) AND EXISTS (SELECT 'job for item in last 3 years' FROM wip_discrete_jobs wdj WHERE wdj.primary_item_id = bom.assembly_item_id AND wdj.creation_date >= ADD_MONTHS (SYSDATE, -36)) -- Unless you are loading a table with this, you may want to ORDER BY... ; 实施didPressRightButton(),并且自从使用SlackTextViewController迁移到Swift 3后它给我一个错误。

Xcode 8

我现在得到的错误是

  

Method不会覆盖其超类中的任何方法。

我不确定为什么会出现这个override func didPressRightButton(sender: AnyObject?) { if let messageToSend = self.textInputbar.textView.text { // Save messageToSend to db self.textInputbar.textView.text = "" super.didPressRightButton(sender) } } ,提前谢谢。

1 个答案:

答案 0 :(得分:4)

升级到Swift 3后出现此错误,因为 SlackTextViewController 是用 Objective-C 编写的。

自Swift 3起,Objective-C类型id现在导入为Any而不是AnyObject

因此,当您使用类型为super.didPressRightButton(sender)的{​​{1}}调用sender时,Swift编译器无法找到您所指的方法。

  

修复:只需在方法定义中将AnyObject更改为AnyObject即可。 (不确定是否需要选项......)