Ios 使用NSUserdefault和swift数组

Ios 使用NSUserdefault和swift数组,ios,arrays,swift,nsuserdefaults,Ios,Arrays,Swift,Nsuserdefaults,我正在制作一个报价应用程序,这将是一个很好的功能,能够允许用户“喜爱”报价,并能够将此数据传递到另一个数组中显示,以前可能的解决方案没有NSUserdefaults,类似于 var favouriteQuotesArray: [String] = [] func makeQuoteFavourite() { let currentQuote = dreamFact.dreamArray[factIndex] favouriteQuotesArray.a

我正在制作一个报价应用程序,这将是一个很好的功能,能够允许用户“喜爱”报价,并能够将此数据传递到另一个数组中显示,以前可能的解决方案没有NSUserdefaults,类似于

var favouriteQuotesArray: [String] = []

    func makeQuoteFavourite() {

        let currentQuote = dreamFact.dreamArray[factIndex]
        favouriteQuotesArray.append(currentQuote)
    }
但那不起作用,浪费了我很长一段时间。但是您可以看到,我试图实现的是能够取出数组中某个索引处的一些字符串(在本例中为dream数组),然后将其附加到另一个全局数组中,以便在另一个viewController中显示。现在我正在考虑NSUserdefaults,并在单击按钮时将其存储到一个数组中,如下所示:

@IBAction func favour() {

//some NSUserdefaults statement to save this to a global array which I would be able to call in a view controller. 
}
我该怎么做这样的事?还有其他选择吗? 我的项目的最后一件事,请给出任何有用的和详细的建议,你可以

这是代码

 var favouriteQuotesArray: [String]? = NSUserDefaults.standardUserDefaults().objectForKey("thekey") as? [String] 

                    func makeQuoteFavourite() {
                        if favouriteQuotesArray == nil {
                        favouriteQuotesArray = []
}
                        let currentQuote = dreamFact.dreamArray[factIndex]
                        favouriteQuotesArray!.append(currentQuote) 
                        NSUserDefaults.standardUserDefaults().setObject(favouriteQuotesArray!, forKey: "thekey")
                    }

            @IBAction func favour() {
                 makeQuoteFavourite()
            }
然后,你可以像这样在任何地方访问它


NSUserDefaults.standardUserDefaults().objectForKey(“钥匙”)

好了,伙计,我的一个小时已经结束了,一切都取决于你回答的合法性。请确保这是正确的。我有许多视图控制器,它们都需要相同的功能。我是否要跨所有视图控制器复制此功能?您只需将更多变量添加到相同的
struct
就可以在声明时错误地使用未解析的标识符。请确保该结构在类声明之外