我试图在自定义集合中实现写时复制行为,这时我遇到了捕获self的嵌套函数的这种奇怪行为。在下面的代码中,调用了isKnownUniquelyReferenced(_:)将始终返回false,尽管在甚至定义嵌套函数之前被调用:classFoo{}structBar{varfoo=Foo()publicmutatingfuncbar(){print(isKnownUniquelyReferenced(&foo))funcnestedFunc(){_=self//captureself}nestedFunc()}}varb=Bar()b.bar()//false?!到底为什么会这样,我能做些