在我的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然后比较,就像我现在一样)?
我认为TableData
是String
的阵列,你试图在其中追加String Array
。这就是你得到这个错误的原因。
你应该这样做,
TableData.append(contentsOf: sortedArray)