快速在函数之间传递数据

时间:2018-07-18 09:20:09

标签: swift xcode

我知道这可能是一个非常愚蠢的问题,可能是我在编程课上可能遗漏的东西,但是我试图在两个函数之间传递数据,并且以任何方式执行此操作,都会弹出不存在的数据错误。

6 个答案:

答案 0 :(得分:1)

虽然使用实例变量是一种解决方案,但也可以使函数保持纯净:

func deleteHandler(tags: String) { // not sure what the correct type is
   ...
}

请注意,您无需通过操作。要使用该函数,可以将其包装到一个闭包中:

let deleteAction = UIAlertAction(title: "Delete", style: .default) { _ in
   self.deleteHandler(tags)
}

答案 1 :(得分:0)

您不能在方法之外使用局部变量。 您的tagsdidselect方法中的局部变量

请在didselect方法中声明将值分配为全局值,并在function之外使用它

这可能对您有所帮助谢谢

答案 2 :(得分:0)

通过在函数外部包含此标签来全局声明标签:

var tags = String()

然后通过将其包含在didSelect函数中来分配值:

tags = posts2[indexPath.row].photoUrl

这是假设photoUrl是一个字符串。

答案 3 :(得分:0)

您可以在didSelectrow中使用Delete操作的完成处理程序。

let deleteaction = UIAlertAction(title: "Delete", style: .default, handler: { _ in
       self.deleteHandler(tags: "https://")// Here pass your parameter
 })
alertController.addAction(deleteaction)


func deleteHandler(tags: String) {
        // delete handler code

}

答案 4 :(得分:0)

做这样的事情:

mob.position = $mobspawn/moblocation.global_position

然后像下面这样写选择器:

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let tag = indexPath.row
    let alert = UIAlertController.init(title: "Some Alert", message: "You sure you want to delete this?", preferredStyle: .actionSheet)
    alert.addAction(UIAlertAction.init(title: "OK", style: .default, handler: { (success) in
        self.deleteHandler(tag: tag)
    }))
    self.present(alert, animated: true, completion: nil)
    }

答案 5 :(得分:-1)

您可以通过将要使用的值添​​加到UserDefaults中,然后将其重新调用到需要的下一个空间中,来导出要使用的值。只需记住要同步创建原始值的点,使其始终保持最新状态,否则您将发现自己有多余的行,没有数据或较旧的数据。

我想这是一个很庞大的方法,但这是一个解决方案。