我有一个具有某些属性的对象,类或结构的数组
我想将这些礼节放在一个数组中,以便我可以轻松访问它们 在TableDataSource中(因为section,indexpath等..)
我试过写这个初始化
ListField
然后检索它
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)
}
}
但是arr总是为零
也许是因为我正在向NSArray施展?但是我无法投射到#34; Array&#34;
媒体,网址,hastags和userMentions初始化在&#34; Tweet&#34;类
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
}
}
所以它们是非常正常的数组
答案 0 :(得分:1)
您的代码基本上存在一些问题:
1)didSet
在init期间没有调用。这会导致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]
}
}