Я создал пользовательское свойство по умолчанию, называемое «данные», которое содержит значения String
, что означает массив String. И я хочу использовать строки в «данных» как searchString
, написанные ниже ("one", "two", "three")
. Я создал метод;Swift3: Как использовать данные пользователя по умолчанию в NSArray?
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*")
Это так просто решение. благодаря – bagels