【问题标题】:How to get one function for multiple struct arrays?如何为多个结构数组获取一个函数?
【发布时间】:2017-08-01 06:44:20
【问题描述】:

我希望结构数组作为参数在我的函数中进行更改,如果我想更改字符串,我输入文本:字符串,但是当我想要测试时输入什么:ArrayOfStruct 作为参数?

    func prizeCsGoArraySetup(arrayToAppend: here i want my struct ){
    if UserDefaults.standard.object(forKey: "prizeArray") != nil {
        let demo = UserDefaults.standard.object(forKey: "prizeArray") as! NSDictionary
        if let priArray = demo.value(forKey: "csgo") as? NSArray{
            for prizeItem in priArray {
                if let prizeVC = prizeItem as? NSDictionary{
                    let newElement : prize = prize(category: prizeVC.value(forKey: "category") as! String, name: prizeVC.value(forKey: "name") as! String, price: prizeVC.value(forKey: "price") as! Int, image: prizeVC.value(forKey: "image") as! String)
                    arrayToAppend.append(newElement)

我想为另外 7 个数组添加可变结构数组,怎么做? 我不想把整个函数写 7 次。

【问题讨论】:

  • 很难说出你在问什么。你能把你的代码简化为一个能说明你的问题的 MWE 吗?

标签: arrays swift function struct swift3


【解决方案1】:

很简单

func prizeCsGoArraySetup(arrayToAppend: [MyStruct] )

【讨论】:

  • 根据问题中“可更改”的含义,这里可能需要一个inout
  • 如果我这样做你会得到错误,不能在不可变值上使用变异成员
【解决方案2】:

我找到了答案,我之前需要使用 inout。

    func prizeArraySetup( arrayToAppend: inout [prize], forKeyText: String )

【讨论】:

    猜你喜欢
    • 2022-10-23
    • 2020-08-11
    • 1970-01-01
    • 2021-07-25
    • 2021-08-31
    • 2021-07-22
    • 2020-12-15
    • 2019-08-04
    • 1970-01-01
    相关资源
    最近更新 更多