簡體   English   中英

使用Swift使用數組的問題:For循環后無法訪問數組的所有對象

[英]Issue with arrays using Swift: Can't access all objects of an array after For loop

我遇到這個問題已經很長時間了。 我正在嘗試使用NSMutableArray填充UITableView 但是我沒有將所有對象都排除在循環之外。 對象的總數為167。但是,它返回的是同一對象的167。

我像這樣在循環外聲明了數組:

class TableViewController: UITableViewController {

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

override func viewDidLoad() {
    super.viewDidLoad()

    loadContent()
   }

整個過程發生在一種方法中:

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()初始化為var sermon = SermonLink()的屬性,並且您正在更新for循環內的相同對象。 嘗試在每次迭代的for循環內創建此代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM