问题标签 [strong-references]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 在 Objective-C 中,弱引用和强引用是怎样的?
维基百科指出“在计算机编程中,弱引用是一种不保护被引用对象不被垃圾收集器收集的引用”。这两种类型的引用在代码中看起来如何?弱引用是否是自动发布消息的引用?
c# - 是否可以挂钩由 GC 收集的对象?
假设我有WeakReference
一个目标强引用。我想在目标对象本身被 GC 收集时得到通知。可能吗?
编辑:将代码添加到终结器/析构函数不是这里的选项。我需要一些不依赖于类代码的东西。
ios - IBOutlet 和其他的弱或强
我已将我的项目切换到 ARC,但我不明白我是否必须使用strong
IBOutlets weak
。Xcode 这样做:在界面生成器中,如果创建一个UILabel
例如,我将它与助手编辑器连接到我的ViewController
,它会创建这个:
它使用strong
,而不是我在 RayWenderlich 网站上阅读了一个教程,上面写着:
但是对于这两个特定的属性,我有其他计划。而不是
strong
,我们将它们声明为weak
。
Weak
是所有出口属性的推荐关系。这些视图对象已经是视图控制器的视图层次结构的一部分,不需要保留在其他地方。声明你的 outlet 的一大好处weak
是它可以节省你编写 viewDidUnload 方法的时间。目前我们的
viewDidUnload
样子是这样的:
您现在可以将其简化为以下内容:
所以使用weak
, 而不是,strong
并在.videDidUnload
strong
self... = nil
viewDidUnload
我的问题是:我什么时候必须使用strong
,什么时候weak
?我还想用于部署目标 iOS 4,所以我什么时候必须使用unsafe_unretain
?任何人都可以通过一个小教程帮助我很好地解释我,什么时候使用strong
,weak
以及unsafe_unretain
使用 ARC?
objective-c - View 持有强引用?
快速提问:我ViewController
的IBOutlet
for aUILabel
会ViewController's view
自动持有对标签的强引用吗?而且,如果我以编程方式创建一个UIPopoverController ivar
输入ViewController
并以UIPopoverController ivar
编程方式将其放在屏幕上也会ViewController's view
自动保持对它的强引用吗?
ios - Setting strong references objects to nil with ARC enabled?
I am developing an iPhone app with ARC option enabled. i am creating IBOutlets in .h files which are connected from file owners icon to .xib elements.for eg.
in .m file, i am doing
Is there a need to explicitly set bt
to nil in viewDidUnload
method? i.e. self.bt = nil;
in viewDidUnload
?
Also, do I need to write dealloc
method with ARC option enabled? When should I make IBOutlets elements as strong and weak references with ARC enabled?
ios - 在 SplitView 中设置两个 View 以保持对彼此的引用是不是很糟糕?
我目前正在编写一个 RSS 程序,其中我的 splitViewController 的视图必须相互通信。它们目前都持有彼此的属性实例,如下所述,在 App Delegate 中声明。我想知道这是否是不好的编程习惯,如果是,我应该怎么做才能避免它?
/ ----------------------------------------- /
ios - NSTimer 内存管理
当我执行此代码时:
我是否需要将它归零或释放它,或者用于内存管理?
我正在使用 ARC
objective-c - self 如何传递给方法(或如何防止强引用循环)
我目前正在考虑在使用保留自身的块时如何防止强引用循环。通常的方法似乎是只使用对 self 的弱引用:
但是如果 methodB 看起来像这样:
这仍然会导致强大的参考周期吗?或者methodB会从methodA接收到对self的弱引用作为对self的引用?(也就是说,methodB 对 self 的引用只是对 methodA 的弱引用的强引用吗?)
ios - Objective-C:弱属性不能按预期工作
我是 Objective C 的新手,我有一些我自己无法回答的问题。我有一段代码用于测试 __weak 变量(当然,我使用的是 ARC):
上述代码的输出与预期一致,因为 weakString 是一个弱变量:
但是当我将代码修改为:
输出完全不是我所期望的:
后一个 NSLog 的输出必须是 (nil) 而不是“John”。我试图在许多文档中搜索,但我没有找到这个案例的答案。有人能给出合理的解释吗?提前致谢。
objective-c - iOS 中的 __weak 和 __strong 属性有什么区别?
在一个开源项目中有代码:
我想知道一个类什么时候需要设置self
为强或弱?