Swift:将self作为inout参数参数传递时出错

用户名

我有这种情况:

class classA{
  var objB : classB;

   init(){
      objB = classB(&self) //ERROR!
  }
}

class classB{
 var _objA : classA

  init(inout objA : classA){
      _objA = objA;
  }
}

我收到消息:'classA'不是'@lvalue $ T3'的子类型

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

该错误会误导您,但您的程序不应编译:self作为in-out参数传递没有意义斯威夫特书清楚了什么可以通过以下方式传递inout

您只能将变量作为输入输出参数的参数传递。

这完全有道理:想象一下,如果您的函数为其objA参数分配了新值,将会发生什么由于它与self调用者中的对象相对应,因此需要用一个没有明确语义的新对象替换该调用者对象。

您可以通过为定义一个临时变量来解决此问题self,如下所示:

var temp = self;
objB = classB(&temp)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift:将self作为inout参数参数传递错误

来自分类Dev

将ContainerInterface作为参数传递时出错

来自分类Dev

将“ const”作为“ this”参数传递时出错

来自分类Dev

将 SKNode 作为函数参数传递时出错

来自分类Dev

传递将小数作为参数输出的函数时出错,但不直接传递float

来自分类Dev

传递参数时出错

来自分类Dev

传递参数时出错

来自分类Dev

从VB.Net将文本值作为参数传递给Crystal Report公式字段时出错

来自分类Dev

尝试将文本文件作为参数传递时出错

来自分类Dev

Web api在将*作为输入值传递给api方法参数时给出错误

来自分类Dev

E0312、C2664 尝试将矢量对象作为函数参数传递时出错

来自分类Dev

在Swift 1.2的init方法中将self作为参数传递

来自分类Dev

在类中将函数作为参数传递时出错

来自分类Dev

在VBA中将命名范围作为参数传递时出错

来自分类Dev

在bash中将数组作为函数参数传递时出错

来自分类Dev

在C ++中将函数作为参数传递时出错

来自分类Dev

需要传递“ self”作为参数时使用apply函数

来自分类Dev

需要传递“ self”作为参数时使用apply函数

来自分类Dev

Swift错误:无法将不变值作为inout参数传递:'pChData'是'let'常量

来自分类Dev

传递空参数时出错

来自分类Dev

Swift 3的Inout参数

来自分类Dev

Swift 以参数作为参数传递闭包

来自分类Dev

将参数传递给存储过程时出错

来自分类Dev

动态将参数传递给javascript函数时出错

来自分类Dev

将参数从活动传递到android中的片段时出错

来自分类Dev

将参数传递给javascript函数时出错

来自分类Dev

将参数传递给 psql 命令时出错

来自分类Dev

将属性作为参数传递

来自分类Dev

将任务作为参数传递

Related 相关文章

热门标签

归档