Error: Use of unresolved identifier 'indexPath'

Error: Use of unresolved identifier 'indexPath'

我有一个 IBAction 打开 UIActivityViewController:

@IBAction func share(sender: UIButton) {

    let defaultText = "Check out my Pinpoint: " + self.pinpoints[indexPath.row].main + ". Get Pinpoint on the iOS App Store!"
        if let imageToShare = UIImage(data: self.pinpoints[indexPath.row].image) {
            let activityController = UIActivityViewController(activityItems: [defaultText, imageToShare], applicationActivities: nil)
            self.presentViewController(activityController, animated: true, completion: nil)
    }
}

错误出现在第 2 行和第 3 行(以 let defaultTextif let imageToShare 开头)它说:

Use of unresolved identifier 'indexPath'

单词pinpoints是一个存放main(UILabel)和image(UIImageView.)的数组

我该如何解决这个错误?

错误告诉你当​​前范围内没有变量indexPath。 (您既没有局部变量也没有同名的实例变量)

您希望在上面的代码中使用什么NSIndexPath

您是否有处于活动状态的 table 视图或集合视图并且您正在尝试对当前选择进行操作?

解决问题的方法是指向一个现有变量。 (大概是一个实例变量。)

除非您提供更多信息,否则我们无法告诉您那是什么。

IBAction 连接到什么控件?

编辑:

如果你有一个共享按钮,并且你希望它在 table 视图中共享所选项目,那么你应该调用 table 视图的 indexPathForSelectedRow 方法来请求它选定的单元格。

只需在 cellforRowAtIndexPath 中为您的按钮添加一个标签,该标签将等于 indexPath.row

someButton.tag = indexPath.row

现在你的函数应该是:

IBAction func share(sender: UIButton) { 
    let defaultText = "Check out my Pinpoint: " + self.pinpoints[sender.tag].main + ". Get Pinpoint on the iOS App Store!" 
    if let imageToShare = UIImage(data: self.pinpoints[sender.tag].image) { 
        let activityController = UIActivityViewController(activityItems: [defaultText, imageToShare], applicationActivities: nil)
         self.presentViewController(activityController, animated: true, completion: nil) 
    } 
}