在我开始之前,只是想说我对应用程序开发一般都是新手,我只是在这一个月里,所以尽可能地把它愚蠢地告诉我哈哈.
好的,所以我正在开发一个引用应用程序,所以我创建了一个可以从任何视图控制器访问的数组.这将包含“喜欢”的引号,这是从另一个视图添加的.
这是我的全球“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]()