簡體   English   中英

如何保存附加到全局數組swift 2的數據

[英]How to persist data that is appended to a global array 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 ,可以按照本教程找出具體的方法

教程的主旨:

//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]()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM