表更新来自JSON数组,但按字母顺序排序会导致Swift 3中的错误

问题描述 投票:0回答:1

在我的iOS应用程序中,我从外部json文件填充表。现在工作正常,我遇到的问题是我需要按字母顺序对表进行排序。

我添加了一个比较方法,打印它会给我正确的输出(由他们的show_name组织的结果列表)。但是,当我尝试将这些结果附加到表中时,我收到错误。

这是我的代码:

func extract_json(_ data: Data)
{
    let json: Any?
    do{
        json = try JSONSerialization.jsonObject(with: data, options: [])
    }
    catch{
        return
    }

    guard let data_list = json as? NSArray else {
        return
    }

    if let shows_list = json as? NSArray
    {
        for i in 0 ..< data_list.count
        {
            if let shows_obj = shows_list[i] as? NSDictionary
            {
                let show_name = shows_obj["show"] as? String
                let show_image = shows_obj["thumbnail"] as? String
                TableData.append(show_name!)
                var sortedArray = TableData.sorted { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.orderedAscending }
                print(sortedArray)

如果我将TableData.append(show_name!)更改为TableData.append(sortedArray),我会收到错误“无法转换类型'[String]的值?”预期的参数类型'String'“。

在将json数组加载到表中之前是否有一种更安全/更智能的方法来按字母顺序排列我的json数组(而不是尝试将其加载到TableData然后比较,就像我现在一样)?

ios swift
1个回答
1
投票

我认为TableDataString的阵列,你试图在其中追加String Array。这就是你得到这个错误的原因。

你应该这样做,

TableData.append(contentsOf: sortedArray) 
© www.soinside.com 2019 - 2024. All rights reserved.