2014-08-27 19 views
7

Tôi hiện đang cố gắng thay đổi một vài NSArrays thành NSMutableArrays tuy nhiên vì tôi mới sử dụng Swift và Xcode, tôi thực sự không hiểu lỗi và cách khắc phục chúng.Chuyển đổi NSArray thành NSMutableArray trong Swift

Đây là mã tôi có:

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) 
} 

Tôi hiện nhận được lỗi: lỗi nghiêm trọng: bất ngờ tìm thấy con số không trong khi unwrapping một giá trị bắt buộc

Ngoài ra, tôi biết rằng tôi không nên thực sự được sử dụng NSUserDefaults cho mục đích này, nhưng tôi tìm thấy nó dễ dàng hơn bằng cách sử dụng một plist hoặc Core Data vv ... Vì nó là ứng dụng đầu tiên của tôi, tôi chỉ muốn giữ mọi thứ đơn giản.

Trả lời

24

Bạn đang tốt hơn bằng cách sử dụng cú pháp này để thiết lập các biến

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

trình hoàn hảo. Cảm ơn rất nhiều! – user3746428

16

Cũng chỉ để chuyển đổi NSArray để NSMutableArray trong Swift:

let name: NSArray = ["John","Jake","Tom"]

var myNewName = NSMutableArray(array:name)

+1

điều này sạch hơn việc sử dụng mutableCopy() – Adamski

Các vấn đề liên quan