how to load dictionary data in table view cell in ios swift? : Here i am getting data in xml and i have retrieved into dictionary to load in table view. Work flow - When user in home screen and taps on create button and it takes to next search product screen there user can able their amazon products. searched product are loaded into table view cell.

My issue is when taps on create button table view tries to load data and its getting crash

Crash line is results!.count.

Here is the code i tried: 


     var results: [[String: String]]?
     var currentDictionary: [String: String]? // the current dictionary
     var currentValue: String?                // the current value for one of the 
     keys in the dictionary
     let recordKey = "ItemAttributes"
     let dictionaryKeys = Set<String>(["Title"])

      func parserDidStartDocument(_ parser: XMLParser) {
        results = []
    }
    
    // start element
    //
    // - If we're starting a "record" create the dictionary that will hold the results
    // - If we're starting one of our dictionary keys, initialize `currentValue` (otherwise leave `nil`)
    
    func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
        if elementName == recordKey {
            currentDictionary = [:]
        } else if dictionaryKeys.contains(elementName) {
            currentValue = ""
        }
    }
    
    // found characters
    //
    // - If this is an element we care about, append those characters.
    // - If `currentValue` still `nil`, then do nothing.
    
    func parser(_ parser: XMLParser, foundCharacters string: String) {
        currentValue? += string
    }
    
    // end element
    //
    // - If we're at the end of the whole dictionary, then save that dictionary in our array
    // - If we're at the end of an element that belongs in the dictionary, then save that value in the dictionary
    
    func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
        if elementName == recordKey {
            results!.append(currentDictionary!)
            currentDictionary = nil
        } else if dictionaryKeys.contains(elementName) {
            currentDictionary![elementName] = currentValue
            currentValue = nil
        }
    }
    
    // Just in case, if there's an error, report it. (We don't want to fly blind here.)
    
    func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) {
        print(parseError)
        
        currentValue = nil
        currentDictionary = nil
        results = nil
    }
    
    //         func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    //            return 1
    //        }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        return results!.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath as IndexPath) as! amazonProductListTableViewCell

        let productlist = ProductName[indexPath.row]
        print("prodic:::\(productlist)")

        //        cell.amazonProductTitle?.text = productlist[indexPath.row]

        //        cell.detailTextLabel?.text = book.bookAuthor

        return cell
    }