Swift Println并在数组排序后保留引号

时间:2015-03-13 13:58:19

标签: swift

我有一个包含250个阵列的大型嵌套数组:

[["europe", "eastern europe", "belarus", "frequent"],
    ["europe", "eastern europe", "bulgaria", "frequent"],
    ["europe", "eastern europe", "czech republic", "frequent"],
    ["europe", "eastern europe", "hungary", "frequent"],
    ["europe", "eastern europe", "moldova", "not"],
    ["europe", "eastern europe", "romania", "frequent"],
    ["europe", "eastern europe", "slovakia", "frequent"]]

这只是一个样本,原始的不是按字母顺序排序,而是更大。 我需要按字母顺序对这个数组进行排序,并在我的文件中对已排序的数组进行硬编码。我正在考虑使用sort函数,然后打印数组并将其复制到我的代码中:

 var myArray = ListOfCountries().countries
    myArray.sort({ $0[2] < $1[2] })
    println(myArray)

这确实排序正确,但println看起来像这样:

[[asia, southern central asia, afghanistan, frequent], 
[europe, southern europe, albania, frequent], 
[oceania, polynesia, american samoa, not], 
[europe, southern europe, andorra, not], 
[africa, central africa, angola, frequent],
 [americas, caribbean, anguilla, not]]

我丢失了引号,因此我无法将其复制到我的代码和其他我需要的地方“”。 我怎么能做同样的事情,但可以使用引号访问带排序的数组?

2 个答案:

答案 0 :(得分:1)

您在提问中提及保留引号。这让我觉得你认为引号是你的字符串的一部分,并且排序将它们删除了。

但事实并非如此。如果您在Swift 代码中使用"europe"之类的字符串, 内存中的表示只是europe而没有引号。

println()写入控制台的是对象的外部表示。如果是String值,则会在不添加引号的情况下打印它们。这只是一个实现细节,与应用程序中字符串的存储方式无关。

你提到你以后需要引用字符串的数组。如果这意味着您需要JSON格式的数据,那么您将需要使用JSON编码器,它将获取您的字符串数组并根据JSON格式规则将其写出来,包括引号。

答案 1 :(得分:1)

尝试:

debugPrintln(myArray)

引用"字符串。

/// Write to the console the textual representation of `x` most suitable
/// for debugging, followed by a newline.
///
/// ... snip ...
///
/// See also: `debugPrint(x)`
func debugPrintln<T>(x: T)