我创建了一个名为“ data”的用户默认属性,该属性包含的值String
,这意味着它是String的数组。我想在“数据”中使用Strings,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*")
在Swift中,如果您使用Swift nativeArray
而Dictionary
不是NSArray
and NSDictionary
,那就很麻烦了,但是要回答您的问题,您可以使用initializerNSArray
使用Swift类型的Array进行初始化NSArray(array:)
。
let searchString : NSArray = NSArray.init(array: getInput())
或者
let searchString : NSArray = NSArray(array: getInput())
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句