在Swift中将NSArray转换为NSMutableArray

时间:2014-08-27 22:40:41

标签: swift nsmutablearray nsarray

我目前正在尝试将一些NSArrays更改为NSMutableArrays,但是因为我是Swift和Xcode的新手,所以我真的不了解错误以及如何修复它们。

这是我的代码:

var names: NSMutableArray = []
var dates: NSMutableArray = []
var values: NSMutableArray = []
var images: NSMutableArray = []

override func viewWillAppear(animated: Bool) {
    self.tableView.reloadData()

    if enterButtonTapped == false {
        addTransactionButton.enabled = false
    } else {
        addTransactionButton.enabled = true
    }

    var tempNames: NSArray = NSUserDefaults.standardUserDefaults().arrayForKey("names")!
    var tempDates: NSArray = NSUserDefaults.standardUserDefaults().arrayForKey("dates")!
    var tempValues: NSArray = NSUserDefaults.standardUserDefaults().arrayForKey("values")!
    var tempImages: NSArray = NSUserDefaults.standardUserDefaults().arrayForKey("images")!

    names = tempNames.mutableCopy() as NSMutableArray
    dates = tempDates.mutableCopy() as NSMutableArray
    values = tempValues.mutableCopy() as NSMutableArray
    images = tempImages.mutableCopy() as NSMutableArray

    println(names)
    println(dates)
    println(values)
    println(images)
}

我目前收到错误:致命错误:在解包可选值时意外发现nil

此外,我知道我不应该为此目的使用NSUserDefaults,但我发现它比使用plist或Core Data等更容易......因为它是我的第一个应用程序我只是我希望保持简单。

2 个答案:

答案 0 :(得分:28)

最好使用此语法设置变量

if let tempNames: NSArray = NSUserDefaults.standardUserDefaults().arrayForKey("names") {
   names = tempNames.mutableCopy() as NSMutableArray
}

答案 1 :(得分:17)

也只是在Swift中将NSArray转换为NSMutableArray:

  

让名字:NSArray = [" John"," Jake"," Tom"]

     

var myNewName = NSMutableArray(array:name)