Conditional Binding: if let error – Initializer for conditional binding must have Optional type(条件绑定:if let error - 条件绑定的初始化程序必须具有可选类型)
问题描述
我正在尝试从我的数据源和以下代码行中删除一行:
I am trying to delete a row from my Data Source and the following line of code:
if let tv = tableView {
导致以下错误:
条件绑定的初始化器必须是 Optional 类型,而不是UITableView
Initializer for conditional binding must have Optional type, not UITableView
这里是完整的代码:
// Override to support editing the table view.
func tableView(tableView: UITableView, commitEditingStyle editingStyle:UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
// Delete the row from the data source
if let tv = tableView {
myData.removeAtIndex(indexPath.row)
tv.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
我应该如何更正以下内容?
How should I correct the following?
if let tv = tableView {
推荐答案
if let
/if var
可选绑定只在表达式右侧的结果时有效是可选的.如果右侧的结果不是可选的,则不能使用此可选绑定.此可选绑定的要点是检查 nil
并且仅在变量非 nil
时使用该变量.
if let
/if var
optional binding only works when the result of the right side of the expression is an optional. If the result of the right side is not an optional, you can not use this optional binding. The point of this optional binding is to check for nil
and only use the variable if it's non-nil
.
在您的情况下,tableView
参数被声明为非可选类型 UITableView
.它保证永远不会是 nil
.所以这里的可选绑定是不必要的.
In your case, the tableView
parameter is declared as the non-optional type UITableView
. It is guaranteed to never be nil
. So optional binding here is unnecessary.
func tableView(tableView: UITableView, commitEditingStyle editingStyle:UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
// Delete the row from the data source
myData.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
我们所要做的就是摆脱 if let
并将其中所有出现的 tv
更改为仅 tableView
.
All we have to do is get rid of the if let
and change any occurrences of tv
within it to just tableView
.
这篇关于条件绑定:if let error - 条件绑定的初始化程序必须具有可选类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:条件绑定:if let error - 条件绑定的初始化程序必须具有可选类型
基础教程推荐
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01