gpt4 book ai didi

ios - 从另一个类向数组添加元素

转载 作者:行者123 更新时间:2023-11-29 01:30:48 24 4
gpt4 key购买 nike

所以我在 City.swift 中有这个类:

class City {
class Entry {
let name : String
init(name : String) {
self.name = name
}
}

let cities = []
}

在另一个文件中,我想添加到这样的数组中:

var city = City()
city.cities = City(name: "Test")

我希望能够通过 indexPath.row 编号调用它(因为我在 cellForRowAtIndexPath 中使用它),如下所示:

let entry: AnyObject = city.cities[indexPath.row]
println(entry.name as String)

我怎样才能让这段代码工作?

最佳答案

首先,几点意见。

  • 根本不需要嵌套类甚至自定义类
  • 只需使用一个字符串数组
  • 像这样添加到数组:array.append(Item)
  • 不要在识别类型的语言中初始化为 AnyObject。 (let entry: AnyObject = city.cities[indexPath.row])

在您的示例中,您有一个字符串集合,所以我将只使用它:

var cities : [String] = []
cities.append("NY")
let city = cities[0] // NY

您还声明您的一部分代码在不同的文件中。我假设您想要一种获取和存储值的方法。以及显示它们的单独方法?


如果您不仅要处理城市名称,而且还想在应用中的任何位置访问获取的数据,我建议创建两个类。Google Singleton 了解有关其工作原理的更多信息。

class City {

var name : String = ""
var geoLocation : CLLocationCoordinate2D?
// more attributes of your city object

init(name name_I: String) {
self.name = name_I
}
}

class Locations {

// the static part is shared between all instances of the Locations Class -> Google Singleton
static var cachedLocations : Locations = Locations()

var cities : [City] = []

init() {
}
}

// add a new city
let newCity = City(name: "NY")
Locations.cachedLocations.cities.append(newCity)


// in another class / file / viewcontroller ,.... get the cached city

let cachedCity = Locations.cachedLocations.cities[0]

您可以将类函数添加到 Locations 以在 DictionaryCity 类之间进行转换。 How to get a Dictionary from JSON

// class function is available without needing to initialise an instance of the class.
class func addCachedCity(dictionary:[String:AnyObject]) {

guard let cityName = dictionary["name"] as? String else {
return
}
let newCity = City(name: cityName)

cachedLocations.cities.append(newCity)
}

这将像这样使用:

let cityDict : [String:AnyObject] = ["name":"LA"]
Locations.addCachedCity(cityDict)

Locations.cachedLocations.cities // now holds NY and LA

关于ios - 从另一个类向数组添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33478304/

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