NSArray、appendString、无法识别的选择器发送到实例

NSArray, appendString, unrecognized selector sent to instance

我刚开始使用 Swift 并试图修改一些代码,但我不明白这个错误。我希望有人能阐明我的问题,所以就在这里。

Qn1.

var test: NSArray = [String]()
test[0].appendString("abc") //fatal error: Array index out of range

为了解决这个问题,我不得不用 test = [""] 初始化数组,但我假设行 var test: NSArray = String 会初始化它。我做的对吗?

Qn2.

var test: NSArray = [String]()
test = [["xxx", "zzz", "hhh"],["aaa", "qwe", "hyh"]]
test[0].appendString("abc") //[Swift._NSContiguousString appendString:]: unrecognized selector sent to instance

我想在数组中添加另一个字符串,但弹出此错误。我不清楚它为什么会这样。

如果您只是将字符串附加到数组:

// Q1
var test = [String]()
test.append("abc")
// Q2
var test = [[String]]()
test = [["xxx", "zzz", "hhh"],["aaa", "qwe", "hyh"]]
test[0].append("abc)

此外,除非有某些特殊原因需要使用 NSArray,否则最好坚持使用原生 swift 数组。

Qn1。 test 实际上已初始化,但它是空的,因此 test[0] 超出范围,因为没有元素。

Qn2。 appendString 是一个 NSMutableString method,但本例中的 test[0] 是一个数组。要将 "abc" 添加到数组,请使用 append

test[0].append("abc")

+=

test[0] += ["abc"]