【问题标题】:Working with NSUserdefault and arrays swift快速使用 NSUserdefault 和数组
【发布时间】:2015-07-31 13:24:30
【问题描述】:

我正在制作一个报价应用程序,它能够允许用户“收藏”报价并能够传递此数据以显示在另一个数组中,这将是一个很好的功能,这是在没有 NSUserdefaults 的情况下解决这个问题的先前可能的解决方案会是这样的

var favouriteQuotesArray: [String] = []

    func makeQuoteFavourite() {

        let currentQuote = dreamFact.dreamArray[factIndex]
        favouriteQuotesArray.append(currentQuote)
    }

但这并没有奏效,浪费了我很长时间。但是您看到 我想要实现的是能够取出位于我的数组中某个索引处的一些字符串(在本例中为梦想数组),然后将其附加到另一个全局数组以在另一个 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. 
}

我该怎么做这样的事情?有其他选择吗? 附:我的项目的最后一件事请提供任何有用和详细的建议!

【问题讨论】:

    标签: ios arrays swift nsuserdefaults


    【解决方案1】:

    这里是代码

     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("thekey")

    【讨论】:

    • 好吧,我的一小时已经结束,这完全取决于你回答的合法性。请确保这是正确的。
    • 我有很多视图控制器,它们都需要相同的功能,我要复制它吗?
    • 您可以将更多变量添加到同一个 struct
    • 似乎在声明中错误使用未解析的标识符。
    • 确保结构在类声明之外
    猜你喜欢
    • 2018-10-31
    • 1970-01-01
    • 2011-11-26
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    相关资源
    最近更新 更多