([PlanEl-6ren">
gpt4 book ai didi

arrays - 无法分配给 ""中的 "self"- 在 Swift 中使用元组

转载 作者:搜寻专家 更新时间:2023-11-01 06:24:04 25 4
gpt4 key购买 nike

我必须上课:FirstViewControllerPlanGenerator

PlanGenerator 有一个名为 getPlanForIndex (day:Int) -> ([PlanElement], [PlanElement])? 的方法。它返回两个不同的数组,都包含 Plan Element 的对象。

getPlanForIndex (day:Int) -> ([PlanElement], [PlanElement])? {

// Do some work and fill arrays
return (firstArray, secondArray)
}

FirstViewController 中,我创建了两个属性:

let plan:[PlanElement] = [PlanElement]()
let planGen:PlanGenerator = PlanGenerator()

FirstViewController有一个方法叫做:

func prepareView () {

plan = planGen.getPlanForIndex(dayIndex)
}

但是当我想调用它时,我收到了错误信息:无法分配给“self”中的“plan”

最佳答案

首先,您的 plan 成员是一个常量(用 let 声明),您在 init 之外对其进行赋值。如果要在初始化后赋值给它,需要用var声明。

此外,您的 getPlanForIndex 返回一个元组,并且您将其分配给单数(而非元组)类型的成员。如果您只想分配元组的一部分,请这样做:

    (plan, _) = planGen.getPlanForIndex(dayIndex)    

将一个元组分配给一个元组,满足编译器要求,但丢弃第二个元素。

如果您希望 plan 成为一个元组,您必须这样声明和初始化它。从评论中看,您似乎找到了一种方法来做到这一点,但这里有一种输入最少的方法(无论是哪种意义上):

var plan: ([PlanElement], [PlanElement]) = ([], [])

(一旦声明了数组类型,[] 就会被理解为该类型的空数组。只需 var plan = ([], []) 使类型不明确。)

关于arrays - 无法分配给 ""中的 "self"- 在 Swift 中使用元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27092266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com