gpt4 book ai didi

ios - 使用 Swift : Can't access all objects of an array after For loop 的数组问题

转载 作者:行者123 更新时间:2023-11-29 02:03:07 26 4
gpt4 key购买 nike

这个问题困扰我很久了。我正在尝试使用 NSMutableArray 填充 UITableView。但是我并没有把所有的对象都放在循环之外。对象的总数是 167。但是它返回了 167 个相同的对象。

I declared the array outside of the loop like this:

class TableViewController: UITableViewController {

var sermon = SermonLink()
var sermons: NSMutableArray = []

override func viewDidLoad() {
super.viewDidLoad()

loadContent()
}

The whole thing happens in a method:

func loadContent() {

var elements: NSArray = []


let urlForHTML = NSURL(string:"http://ontherock.dk/?page_id=1141")
var dataForHTML: NSData = NSData(contentsOfURL: urlForHTML!)!
var htmlParser = TFHpple(HTMLData: dataForHTML)
var htmlXPathString = "//td[@class='lyf_td_filename']/a"
elements = htmlParser.searchWithXPathQuery(htmlXPathString) as NSArray

var sermonArr:NSMutableArray = []
for item in elements {
var element: TFHppleElement = item as! TFHppleElement

var firstChildItem: NSString = element.firstChild.content
var dashSeperatedSermonArray = firstChildItem.componentsSeparatedByString("-") as! [String]


sermon.subject = dashSeperatedSermonArray[4].stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
sermon.speaker = dashSeperatedSermonArray[3].stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
sermon.urlForAudioSermon = element.attributes["href"] as! String



sermonArr.addObject(sermon)//Here inside the loop I get the expected data
}
sermons = sermonArr //sermons contains only the object at the last index, 167 times
self.tableView.reloadData()
}

最佳答案

以下可能是问题所在。

自从您初始化 var sermon = SermonLink()
作为类的属性,您正在更新 for 循环内的相同对象。尝试在每次迭代的 for 循环内创建它。

关于ios - 使用 Swift : Can't access all objects of an array after For loop 的数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30107959/

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