草庐IT

unowned-references

全部标签

ios - 如何在 VIPER 设计模式中将 ViewController Reference 传递给 Router?

附言:这不是一个自以为是的问题。在VIPER中连接各种模块是一个合理的怀疑。这是一个理论问题,因此没有附加代码。我只需要知道我们如何在这种特定情况下连接View-Presenter-Router而不会破坏VIPER的基本规则我是第一次尝试使用VIPER。这是我对VIPER的基本理解。View:应该显示UI控件并捕获IBActions并调用它的presenter的委托(delegate)方法来处理事件Presenter:将处理所有与UI相关的数据并准备渲染数据并将数据移交给View。每当需要屏幕转换时,它都会调用其路由器并要求路由器执行转换P.S:Presenter中不会有任何UICom

swift 3 : error: ambiguous reference to member '>'

我无法从Swift编译器中理解这个错误:error:ambiguousreferencetomember'>'letmoveDirection=dx>0?.right:.left代码如下:enumMoveDirection{casenonecaseleftcaseright}overridefunctouchesMoved(_touches:Set,withevent:UIEvent?){guardlettouch=touches.firstelse{return;}letlocation=touch.location(in:humanPlayerScreen)letpreviousL

swift - 为什么要在依赖 self 的 block 中指定 [unowned self]?

我希望self不为nil,并且我确信它会在block执行期间。那么为什么要明确指定[unownedself]呢?object.executeBlock{date=self.lastModified}对比object.executeBlock{[unownedself]indate=self.lastModified}编辑:好吧,我的票数越来越低,所以让我们再试一次。问:假设我有问题。那个问题是我想阻止引用循环。我有两个选择。我可以使用[unownedself]或者我可以使用[weakself]。因此,我的问题是:从这两个选项中,我为什么要选择[unownedself]?为什么不每次都选

swift - 在异步网络请求中捕获 self weak 或 unowned

每当我执行异步网络请求时,可能是在请求到达时self已经为nil(例如,ViewController已经被关闭)。为了防止这种情况,我通常将自己描述为软弱的:future.onSuccess(context:Queue.main.context,callback:{[weakself]resultinifletstrongSelf=self{//Dosomestuffwithself,whichisnowguaranteedtobenotnil//strongSelf.someMethod()}})或者我可以将self捕捉为无主:future.onSuccess(context:Que

swift 4 : Are Strings reference counted & how to get that count

这个性能优化WWDC视频表明字符串是引用计数的,因为它们在堆上。这会影响带有字符串的结构的性能,以及Swift4中是否发生了某些变化(现在字符串再次成为集合-写入时复制)。好奇如何证明这一点并获得实际计数。CFGetRetainCount-不适用于字符串。参见https://developer.apple.com/videos/play/wwdc2016/416/使用Swift4。 最佳答案 Swift字符串是没有引用计数的值类型。但是字符串包含的字符保存在一个引用类型容器存储的堆中,并且有引用计数。这就是为什么SwiftStrin

带隙基准(Bandgap Reference)基本原理和仿真——Virtuoso

带隙基准(BandgapReference)基本原理和仿真——Virtuoso1.基本原理1.1负温度系数1.2正温度系数1.2带隙基准电路原理从放大器的输入的正负两端看进去,经过输出拉回到输入,这里存在了两个反馈,一个正反馈,一个负反馈。在这里可以将两条之路上的电流合并成一个支路,经过一个电阻再输出基准电压Vref。其中电阻R4也会影响输出的基准电压Vref,由于工艺等原因,实际流片产生的基准电压Vref肯定和仿真结果略有差距,但是我们可以将R4作为修调电阻,提前考虑到基准电压Vref不准,在一定范围内,进行烧铝,使得基准电压Vref尽可能接近我们的设计值。上图是一个简单的BGR的电路图,启

swift - 有没有办法检查 `unowned` (实际上是 `unowned(safe)` )引用已被取消?

有什么方法可以检查unowned(safe)Swift引用的“可用性”?所以,我在这个例子中寻找一个像isReferenceAccessible这样的假设函数:funcsomeMethod(){someAsyncOperation(parameters){[unowned(safe)self]inguardisReferenceAccessible(self)else{return}self.someAnotherMethod()}}免责声明:这个问题与weak引用无关!我知道strong、unowned和weak引用有效。而且我不想使用weak引用(因为它可能很慢且可变)。我知道un

swift 。 unowned 相对于 weak 性能的(绝对)唯一特定优势是什么?

在Swift中,我们有正常的默认类型对象不能变成nil。我们有弱类型对象可以变成nil。如果对象变为nil,你的指针自动变为nil,所以你知道对象变为nil我们有无主打字对象可以变成nil。如果对象变成nil,那么你的指针什么也不会发生——如果你试图使用它,你就完蛋了(因此:推论:唯一一次你可以使用“unowned”的情况是你“绝对知道”该对象永远不会变为nil。)现在:在我看来,下面这句话,绝对是真的......我所说的绝对是指,真的,真的,绝对,深入到可能的最深层次的哲学问题真实...“unowned和weak之间的唯一区别是性能。由于unowned没有检查,所以速度更快。绝对没有

swift - 在 RxSwift 驱动程序中使用 [unowned self] 安全吗?

例子:tapGestureRecognizer.rx.event.asDriver().drive(onNext:{[unownedself]_inself.view.endEditing(true)}).disposed(by:disposeBag)因为disposeBag是由自己控制的,我会假设是吗? 最佳答案 是的,如果disposeBag是self的成员变量,那是安全的。 关于swift-在RxSwift驱动程序中使用[unownedself]安全吗?,我们在StackOverf

ios - "Ambiguous reference to member ' init(...)"调用基类初始化器

我有一个基类:classViewController:UIViewController{init(nibNamenibNameOrNil:String?){super.init(nibName:nibNameOrNil,bundle:nil)}requiredinit?(coderaDecoder:NSCoder){}}子类:classOneViewController:ViewController{privatevarone:Oneinit(one:One){self.one=onesuper.init(nibName:"OneNib")}requiredinit?(coderaDe