错误:使用未解析的标识符' indexPath'

时间:2016-04-23 16:57:18

标签: ios swift uiactivityviewcontroller ibaction nsindexpath

我有一个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开始。)它说:

  

使用未解析的标识符' indexPath'

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

如何解决此错误?

2 个答案:

答案 0 :(得分:1)

在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) 
    } 
}

答案 1 :(得分:0)

错误告诉您当前范围中没有变量indexPath。 (您既没有本地变量也没有具有该名称的实例变量)

您希望在上述代码中使用哪些NSIndexPath

您是否有活动的表视图或集合视图,并且您尝试对当前选择进行操作?

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

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

IBAction连接到什么控制?

编辑:

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