我创建了一个名为" data"的用户默认属性,其中包含String
的值,这意味着它是一个String数组。我想在"数据"中使用字符串。在searchString
下面写为("one", "two", "three")
。我创建了一个方法;
func getInput() -> [String] {
if let myData = userDefaults.array(forKey: "data") as? [String] {
return myData
}
return []
}
我把代码放在NSArray.init()
里面,看起来像NSArray.init(getInput)
里面。然而,出现了一个错误,说它不是NSArray,所以我认为这是问题所在。
func textViewDidChange(_ textView: UITextView) {
let attrStr = NSMutableAttributedString(string: mytextView.text)
let inputLength = attrStr.string.characters.count
let searchString : NSArray = NSArray.init("one", "two", "three")
for i in 0...searchString.count-1 {
let string : String = searchString.object(at: i) as! String
let searchLength = string.characters.count
var range = NSRange(location: 0, length: attrStr.length)
while (range.location != NSNotFound) {
range = (attrStr.string as NSString).range(of: string, options: [], range: range)
if (range.location != NSNotFound) {
range = NSRange(location: range.location + range.length, length: inputLength - (range.location + range.length))
mytextView.attributedText = attrStr
}
}
}
另外,如果有更好的方法来保存用户的数据而不是用户默认值,你能不能告诉我原因和样本。但我的主要问题是如何访问用户默认保存的数据并将数据放入NSArray.init("*here*")
答案 0 :(得分:0)
在Swift中,如果您使用Swift原生Array
和Dictionary
而不是NSArray
和NSDictionary
,则会更糟糕,但要回答您的问题,您可以初始化{{1}使用初始化程序NSArray
使用Swift类型数组。
NSArray(array:)
或者
let searchString : NSArray = NSArray.init(array: getInput())