草庐IT

unowned-references

全部标签

swift - 可以使用 weak 为什么要使用 unowned?

这个问题在这里已经有了答案:Whatisthedifferencebetweenaweakreferenceandanunownedreference?(7个答案)关闭8年前。在Swift中,可以选择使用unowned或weak。当可以使用weak时,为什么要使用unowned?看起来两者几乎相同,weak更安全。

xcode - iOS8.0 的 CompileSwift 状态为 "the current deployment target does not support automated __weak references"

我正努力在Swift应用程序中使用静态库(从ObjectiveC编译)。我有一个包含相关header的ObjectiveC桥接header。构建应用程序时出现此错误../someDirectory/Xcode/FirstSteps/headers/Acme.h:89:thecurrentdeploymenttargetdoesnotsupportautomated__weakreferencesAcme类确实使用弱引用,但部署目标是iOS8.0,它应该支持它们。我是不是找错树了?Acme.h的第89行显示:-(void)addTopicListener:(__weakNSObject*

ios - 在 Swift 闭包的闭包内部使用 unowned

我在一个闭包中有一个闭包,第二个闭包使用self,所以两者都应该有unownedself还是只有第二个闭包应该有它?dispatch_async(backgroundQueue){[unownedself]()->Voidindispatch_async(dispatch_get_main_queue(),{[unownedself]()->Voidinself.doSomething()})} 最佳答案 这是保留图没有unowned,它没有任何循环,所以你不需要unowned来破坏任何东西。a->b表示a保留bbackground

ios - 段错误 : 11 - Cross-reference to module

我正在尝试通过对模块的交叉引用来解决段错误。不知道如何使这项工作。部分错误如下:1.Whilereadingfrom/Users/damiandudycz/Library/Developer/Xcode/DerivedData/Hypno-azmcjycezcoqnfauqcbgimvipjyj/Build/Intermediates/Hypno.build/Debug-iphonesimulator/Hypno.build/Objects-normal/x86_64/WorldObjectBasedAugmentedRealityObject~partial.swiftmodule2

swift - 什么时候我们不应该使用 [weak self] 和 [unowned self]?

我在StackOverflow上阅读了一些关于何时应该使用[weakself]的讨论。或[unownedself]在闭包中。但是,在某些情况下我们不必使用两者,因为当我们明确使用self时Swift不会显示任何错误或警告。在闭包内。例如,我们应该使用weak吗?或unowned在这里?UIView.animate(withDuration:0.3){self.view.alpha=0.0} 最佳答案 如果您的闭包会导致强引用循环,则需要使用[weakself]或[unownedself]。如果您将闭包分配到self的属性并且您引用s

ios - 在捕获列表中使用 unowned 导致崩溃,即使 block 本身没有执行

在这里,我在玩泄漏,所以我故意做了一个强大的引用循环,看看Instruments是否会检测到一些东西,我得到了意想不到的结果。Instruments中显示的泄漏当然是有道理的,但随机崩溃有点神秘(由于我稍后会提到的两个事实)。我这里有一个名为SomeClass的类:classSomeClass{//Asyoucanguess,Iwillusethisshadypropertytomakeastrongcycle:)varclosure:(()->())?init(){}funcmethod(){}deinit{print("SomeClassdeinited")}}我还有两个场景,Ga

swift - didSet for weak reference 没有按预期工作

我有这个使用弱引用的Swift小脚本:#!/usr/bin/envswiftclassThing{deinit{print("Thingobjectdeallocated")}}classWeakThing{weakvarthing:Thing?{didSet{print("Setthingto\(thing)")}}}varthing=Thing()letweakThing=WeakThing()weakThing.thing=thingthing=Thing()print("weakThing'sthingis\(weakThing.thing)")这打印:SetthingtoOp

java - 如何在 Eclipse 中禁用警告 - 'Class is a raw type. References to generic type Class<T> should be parameterized'

当我编译第三方库时,会生成一些“应该参数化”的警告。我知道如何修复它们,但我不想这样做,所以我尝试禁用Eclipse中的所有警告/错误。但是,在禁用每个警告/错误后仍会生成警告。请帮忙。 最佳答案 您可以将@SuppressWarnings("rawtypes")添加到方法、语句或方法参数中以抑制此警告。例如,Eclipse插件中的一个常见插件是:@OverridepublicObjectgetAdapter(@SuppressWarnings("rawtypes")Classadapter)

Java 8 : Difference between method reference Bound Receiver and UnBound Receiver

我正在尝试在我的代码中使用Java8方法引用。有四种类型的方法引用可用。静态方法引用。实例方法(绑定(bind)接收器)。实例方法(UnBound接收器)。构造函数引用。使用静态方法引用和构造函数引用我没问题,但是InstanceMethod(Boundreceiver)和InstanceMethod(UnBoundreceiver)真的让我很困惑。在Bound接收器中,我们使用对象引用变量来调用如下方法:objectRef::InstanceMethod在UnBound接收器中,我们使用类名来调用如下方法:ClassName::InstanceMethod.我有以下问题:实例方法对不

JavaFx 8 : open a link in a browser without reference to Application

有超链接。单击时,我希望在外部浏览器中打开一个链接。网上引用的常用方法好像是:finalHyperlinkhyperlink=newHyperlink("http://www.google.com");hyperlink.setOnAction(t->{application.getHostServices().showDocument(hyperlink.getText());});但是我没有对Application的引用。链接是从Dialog打开的,而Dialog是从Controller打开的,而Controller通过fxml文件打开,因此获取对Application对象的引用会