问题标签 [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.

0 投票
2 回答
8441 浏览

iphone - 在 Objective-C 中,弱引用和强引用是怎样的?

维基百科指出“在计算机编程中,弱引用是一种不保护被引用对象不被垃圾收集器收集的引用”。这两种类型的引用在代码中看起来如何?弱引用是否是自动发布消息的引用?

0 投票
3 回答
1317 浏览

c# - 是否可以挂钩由 GC 收集的对象?

假设我有WeakReference一个目标强引用。我想在目标对象本身被 GC 收集时得到通知。可能吗?

编辑:将代码添加到终结器/析构函数不是这里的选项。我需要一些不依赖于类代码的东西。

0 投票
2 回答
22753 浏览

ios - IBOutlet 和其他的弱或强

我已将我的项目切换到 ARC,但我不明白我是否必须使用strongIBOutlets weak。Xcode 这样做:在界面生成器中,如果创建一个UILabel例如,我将它与助手编辑器连接到我的ViewController,它会创建这个:

它使用strong,而不是我在 RayWenderlich 网站上阅读了一个教程,上面写着:

但是对于这两个特定的属性,我有其他计划。而不是 strong,我们将它们声明为weak

Weak是所有出口属性的推荐关系。这些视图对象已经是视图控制器的视图层次结构的一部分,不需要保留在其他地方。声明你的 outlet 的一大好处weak是它可以节省你编写 viewDidUnload 方法的时间。

目前我们的viewDidUnload样子是这样的:

您现在可以将其简化为以下内容:

所以使用weak, 而不是,strong并在.videDidUnloadstrongself... = nilviewDidUnload

我的问题是:我什么时候必须使用strong,什么时候weak?我还想用于部署目标 iOS 4,所以我什么时候必须使用unsafe_unretain?任何人都可以通过一个小教程帮助我很好地解释我,什么时候使用strongweak以及unsafe_unretain使用 ARC?

0 投票
3 回答
1835 浏览

objective-c - View 持有强引用?

快速提问:我ViewControllerIBOutletfor aUILabelViewController's view自动持有对标签的强引用吗?而且,如果我以编程方式创建一个UIPopoverController ivar输入ViewController并以UIPopoverController ivar编程方式将其放在屏幕上也会ViewController's view自动保持对它的强引用吗?

0 投票
2 回答
2130 浏览

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?

0 投票
1 回答
66 浏览

ios - 在 SplitView 中设置两个 View 以保持对彼此的引用是不是很糟糕?

我目前正在编写一个 RSS 程序,其中我的 splitViewController 的视图必须相互通信。它们目前都持有彼此的属性实例,如下所述,在 App Delegate 中声明。我想知道这是否是不好的编程习惯,如果是,我应该怎么做才能避免它?

/ ----------------------------------------- /

0 投票
4 回答
6862 浏览

ios - NSTimer 内存管理

当我执行此代码时:

我是否需要将它归零或释放它,或者用于内存管理?

我正在使用 ARC

0 投票
2 回答
236 浏览

objective-c - self 如何传递给方法(或如何防止强引用循环)

我目前正在考虑在使用保留自身的块时如何防止强引用循环。通常的方法似乎是只使用对 self 的弱引用:

但是如果 methodB 看起来像这样:

这仍然会导致强大的参考周期吗?或者methodB会从methodA接收到对self的弱引用作为对self的引用?(也就是说,methodB 对 self 的引用只是对 methodA 的弱引用的强引用吗?)

0 投票
2 回答
460 浏览

ios - Objective-C:弱属性不能按预期工作

可能重复:
为什么弱 NSString 属性没有在 iOS 中发布?

我是 Objective C 的新手,我有一些我自己无法回答的问题。我有一段代码用于测试 __weak 变量(当然,我使用的是 ARC):

上述代码的输出与预期一致,因为 weakString 是一个弱变量:

但是当我将代码修改为:

输出完全不是我所期望的:

后一个 NSLog 的输出必须是 (nil) 而不是“John”。我试图在许多文档中搜索,但我没有找到这个案例的答案。有人能给出合理的解释吗?提前致谢。

0 投票
2 回答
2934 浏览

objective-c - iOS 中的 __weak 和 __strong 属性有什么区别?

在一个开源项目中有代码:

我想知道一个类什么时候需要设置self为强或弱?