gpt4 book ai didi

swift - 在 Swift 中创建一个包含多个数组的数组

转载 作者:可可西里 更新时间:2023-11-01 02:22:50 25 4
gpt4 key购买 nike

我有一个具有一些属性、类或结构数组的对象

我想把这些属性放在一个数组中,这样我就可以很容易地访问它们 在 TableDataSource 中(因为部分、索引路径等。)

我试过写这个初始化

var dataStructure = Array<Any>()

var tweet : Tweet?{
didSet{
dataStructure.removeAll()
dataStructure.append(tweet?.media)
dataStructure.append(tweet?.urls )
dataStructure.append(tweet?.hashtags)
dataStructure.append(tweet?.userMentions)


}
}

然后检索它

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete method implementation.
// Return the number of rows in the section.
let arr = dataStructure[section] as? NSArray

if arr != nil{
println(arr!)
return arr!.count
}else{
return 0
}
}

但是 arr 总是 nil

也许是因为我正在转换到 NSArray?但我不能转换到“阵列”

media、urls、hastags 和 userMentions 在“Tweet”类中初始化

public var media = [MediaItem]()
public var hashtags = [IndexedKeyword]()
public var urls = [IndexedKeyword]()
public var userMentions = [IndexedKeyword]()

所以它们是非常普通的数组

最佳答案

基本上您的代码存在一些问题:

1) didSet 未在初始化期间调用。这导致 dataStructure 数组为空;

2) 您确定需要强制转换为 NSArray 吗?没有它你也可以计数。

3) 在 Tweet 类中使用计算属性来接收所需数据会好得多。

public class Tweet {
public var media = [MediaItem]()
public var hashtags = [IndexedKeyword]()
public var urls = [IndexedKeyword]()
public var userMentions = [IndexedKeyword]()

public var dataStructure:[Any] {
return [media, hashtags, urls, userMentions]
}
}

关于swift - 在 Swift 中创建一个包含多个数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29926473/

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