ios – 如何保存附加到全局数组swift 2的数据

在我开始之前,只是想说我对应用程序开发一般都是新手,我只是在这一个月里,所以尽可能地把它愚蠢地告诉我哈哈.

好的,所以我正在开发一个引用应用程序,所以我创建了一个可以从任何视图控制器访问的数组.这将包含“喜欢”的引号,这是从另一个视图添加的.

这是我的全球“likesArray”.它驻留在自己的swift文件中.

import Foundation

struct Globals {

    static var likedArray: [String] = ["Touch 'Liked' To Continue..."]

}

通过此方法从另一个视图控制器文件将引号添加到likesArray.

@IBAction func likedbuttonPressed(sender: AnyObject) {

    Globals.likedArray.append(quoteLabel.text)
}

并且通过此方法在另一个视图中显示“喜欢”的引号

// Like button method to move forward in array
@IBAction func likedButtonTouched(sender: AnyObject) {

    self.favouritesLabel.fadeOut(completion: {
        (finished: Bool) -> Void in

    self.currentlikedArrayIndex++
    if self.currentlikedArrayIndex < Globals.likedArray.count {
        self.favouritesLabel.text = Globals.likedArray[self.currentlikedArrayIndex]
    } else {
        self.currentlikedArrayIndex--
    }

     self.favouritesLabel.fadeIn()

    })  
}

这一切都很好,除了当我退出应用程序时,所有喜欢的引用都消失了.

所以,我的问题是如何保存这些数据?
如果您需要有关我的代码的更多信息,请告诉我.提前致谢.

最佳答案 最麻烦的方式可能就是使用NSUserDefaults,可以按照
this tutorial来了解具体方法

教程的主旨:

//for writing to storage
let defaults = NSUserDefaults.standardUserDefaults()
let array = ["Hello", "World"]
defaults.setObject(array, forKey: "SavedArray")

//for reading
let array = defaults.objectForKey("SavedArray") as? [String] ?? [String]()

所以基本上,你应该为你的全局数组创建一个setter方法,所以每次设置数组时,它都会写入NSUserDefaults,然后在应用程序启动时它应该在NSUserDefaults中填充数组中的whats

更新:(刚刚做到这一点)

struct Globals {

    static var likedArray: [String] = ["Touch 'Liked' To Continue..."]

    func addLikedString(likedString: String) {

        self.likedArray.append(likedString)
        NSUserDefaults.standardUserDefaults().setObject(self.likedArray, forKey: "SavedArray")
    }

    func getLikedStringAtIndex(index:Int) -> Int {
        return self.likedArray[index] 
    }

}

//inside your app delegate, or somewhere appropriate, to load the array when the app starts

Globals.likedArray = NSUserDefaults.standardUserDefaults().objectForKey("SavedArray") as? [String] ?? [String]()
点赞