2015-09-20 6 views
1

Я обновляю свое приложение до Swift 2 .. много ошибок uff .. в любом случае я пытаюсь прочитать массив хранилищ в NSuserDefaults, в swift 1 работал, но теперь я получаю nil-ошибку с EXC_Breakdown , я не знаю, как исправить это ...Swift 2 NSUserDefaults read Arrays

это, как я прочитал:

var DescriptionArray = save.objectForKey("NewsDescriptions")! as! NSArray 

это я, как я сохранить его (Описание является массив):

var SaveDescription = save.setObject(Description, forKey: "NewsDescriptions")   
    save.synchronize() 

ответ

1

Вот пример того, как вы можете хранить данные в NSUserDefault в Swift 2.0. Он очень похож на концепцию Objective-C, но отличается только синтаксисом.

Инициализировать ваш NSUserDefault Variable:

let userDefaults = NSUserDefaults.standardUserDefaults() 

Initialize какого типа данных для сохранения: В вашем случае вы использовали objectForKey, несмотря на то, что должно работать, это лучше, чтобы быть более конкретной информацией о коде ,

var DescriptionArray = userDefaults.arrayForKey("NewsDescriptions") 

Сохраните данные:

userDefaults.setObject(Description, forKey: "NewsDescriptions") 

Затем вы можете synchronize обрабатывать спасительная быстрее.

userDefaults.synchronize() 
+1

Просто интересно, где использование «кодов» происходит от так «код» уже во множественном числе WRT компьютерный код. – zaph

+0

@zaph Да, правда. Наверное, я стараюсь быть лишним, английский - это мой третий язык. lol дай мне перерыв. – Xrait

+0

ОК, я понимаю, возможно, использование «кода» - это американизм. – zaph

1

Вот пример с Swift 2:

func saveArray(value: NSArray) { 
     NSUserDefaults.standardUserDefaults().setObject(value, forKey:"NewsDescriptions") 
     NSUserDefaults.standardUserDefaults().synchronize() 
    } 

    func readArray() -> NSArray { 
     return NSUserDefaults.standardUserDefaults().arrayForKey("NewsDescriptions")! 
    } 
+0

это похоже на мой код – Marcoc

+0

работает с Xcode 7.0 GM и Swift 2 – Geek20

+0

Я не думаю, что это будет работать вообще, так как 'arrayForKey' возвращает 'NSArray', и вы пытаетесь вернуть его непосредственно как' String'. –