gpt4 book ai didi

ios - 将数据保存在一个类中以供另一个函数重用

转载 作者:行者123 更新时间:2023-11-28 13:20:02 28 4
gpt4 key购买 nike

这是一个swift类文件:

import Foundation


class DataPreparation {


// Variables
var userCountries = [String]() //Just 1 or 2 countries
var correspondingFullArrays = [[String]]()


//Get and set raw user countries from current image
func getUserCountries(countries: [String]) -> [String] {
userCountries = countries
return userCountries
}

func getCorrespondingFullArraysToUserCountries() {

println(userCountries) //Is empty

}

在单独的文件 viewController 上,lisOfCountries 和 getCorrespondingFullArraysToUserCountries 这两个方法一个接一个地独立调用:

 DataPreparation().getUserCountries(otherArray[0])
DataPreparation().getCorrespondingFullArraysToUserCountries()

问题是第二种方法无法访问第一种方法设置的 userCountries 数据,因为它是空的。我的猜测,如果我错了你会纠正我,是变量在每次方法调用后被销毁。那么,当单独调用它们时,我们应该如何处理从一个函数到另一个函数的小数据持久性?我当然可以将所有内容重新组合到一个函数中,但这是做事的好方法吗?

最佳答案

在这段代码的每一行中:

DataPreparation().getUserCountries(otherArray[0])
DataPreparation().getCorrespondingFullArraysToUserCountries()

您正在创建 DatePreparation 的新实例,然后对其调用方法。由于您没有将实例分配给变量,因此实例一旦超出范围就会被销毁,在这种情况下对应于实例化它的同一行。

您应该创建一个实例(而不是 2 个),然后分配给一个变量。然后,您可以在该实例上调用方法:

var dataPreparation = DataPreparation()
dataPreparation.getUserCountries(otherArray[0])
dataPreparation.getCorrespondingFullArraysToUserCountries()

关于ios - 将数据保存在一个类中以供另一个函数重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26678663/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com