当前位置: 首页 > 面试题库 >

NSIndexPath?在Swift中没有成员名称“行”错误

宗政博文
2023-03-14
问题内容

我正在用Swift语言和方法创建UITableViewController

override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell?

我收到这个错误

NSIndexPath?在Swift中没有成员名称“行”错误

我不明白为什么。

这是我的代码

import UIKit

class DPBPlainTableViewController: UITableViewController {

    var dataStore: NSArray = NSArray()

    override func viewDidLoad() {
        super.viewDidLoad()
        self.dataStore = ["one","two","three"]

        println(self.dataStore)
    }


    // #pragma mark - Table view data source

    override func numberOfSectionsInTableView(tableView: UITableView?) -> Int {

        // Return the number of sections.
        return 1
    }

    override func tableView(tableView: UITableView?, numberOfRowsInSection section: Int) -> Int {

        // Return the number of rows in the section.
        return self.dataStore.count
    }


    override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell? {
        let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")

        cell.textLabel.text = self.dataStore[indexPath.row]

        return cell
    }

}

然后,如何使用数组dataStore元素设置cell.text?


问题答案:

您可以使用以下命令解开可选indexPath参数if let...

if let row = indexPath?.row {
    cell.textLabel.text = self.dataStore[row]
}

或者,如果确定indexPath不是nil,则可以使用以下命令强制展开!

cell.textLabel.text = self.dataStore[indexPath!.row]

请记住,indexPath!在nil值上将是一个运行时异常,因此,最好像在第一个示例中那样将其包装。



 类似资料:
  • 问题内容: 我正在获取图像,并使用了以下代码。与配合使用时效果很好。更新到之后,我得到如下错误: 是我的代码还是Apple的bug?请在这里帮助我。TIA。 问题答案: 该初始值设定项现在是可失败的初始值设定项,因此它返回了optional 。 要快速修复您的错误,只需解开图像即可: 但我想您会在代码中多次引用该变量,在这种情况下,我建议使用可选绑定:

  • 问题内容: 我正在使用Swift 3和Alamofire 4.0。我可以打印出整个响应,但无法遍历和打印出每个值。当我尝试在下面打印“标题”时,出现“ NSFastEnumerationIterator.Element”类型(又名“ Any”)没有下标成员的情况。我们非常感谢您的帮助。 问题答案: 只需使用本机Swift 。除非绝对没有选择,否则请 始终 使用Swift本机类型。缺少类型信息,因此

  • 问题内容: 当屏幕上显示键盘时,我使用以下几行代码来获取键盘的框架。我已经注册了通知。 这曾经在beta 5中起作用。我下载了最新的Xcode 6版本beta 6,此错误发生在第二行。 “ [NSObject:AnyObject]?” 没有名为“ objectForKey”的成员 经过一番谷歌搜索,我遇到了这个解决方案。我就这样改变了 但是现在看来这也已经过时了。因为我现在收到此错误。 “ [NS

  • 问题内容: 我知道,这个特定的错误已经在各处发布,并且代码有些基本,但是我自己仍然无法弄清楚这个错误,我需要建议。 问题是当我添加parse.com上提供的前两行代码以保存对象时 第二行出现以下错误: “ PFObject”没有名为“下标”的成员 我正在使用Xcode 6.3 beta2。所有必需的库都与通过BridgeHeader导入的二进制文件链接。 我应该使用什么语法? 问题答案: 发生这种

  • 问题内容: 尝试学习PyQt5,在模块“ PyQt5.QtWidgets”中没有名称“ QApplication”,在模块“ PyQt5.QtWidgets”中没有名称QWidget”时,在VS Code中遇到此问题。 我不确定这是否是pylint问题或其他问题。我已经确认PyQt5已随pip3列表一起安装,但我似乎无法弄清楚问题所在。 我希望这个错误不会一直显示,但是会阻止我在VS Code中运