【问题标题】:Converting NSArray to NSMutableArray in Swift在 Swift 中将 NSArray 转换为 NSMutableArray
【发布时间】:2014-08-27 22:40:40
【问题描述】:

我目前正在尝试将一些 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 等更容易......因为这是我的第一个应用程序,我只想保持简单。

【问题讨论】:

    标签: swift nsmutablearray nsarray


    【解决方案1】:

    你最好使用这种语法来设置变量

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

    【讨论】:

    • 完美运行。非常感谢!
    【解决方案2】:

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

     let name: NSArray = ["John","Jake","Tom"]
    
     var myNewName = NSMutableArray(array:name)
    

    【讨论】:

    • 这比使用 mutableCopy() 更干净
    猜你喜欢
    • 2011-06-01
    • 2011-03-14
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    相关资源
    最近更新 更多