Swift3:如何在NSArray中使用用户默认数据?

时间:2016-10-22 10:46:15

标签: ios swift textview swift3 nsuserdefaults

我创建了一个名为" 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*")

1 个答案:

答案 0 :(得分:0)

在Swift中,如果您使用Swift原生ArrayDictionary而不是NSArrayNSDictionary,则会更糟糕,但要回答您的问题,您可以初始化{{1}使用初始化程序NSArray使用Swift类型数组。

NSArray(array:)

或者

let searchString : NSArray = NSArray.init(array: getInput())