weak-references

    1热度

    1回答

    我想我的手在一个事件聚合和我存储在那里我存储的实际操作方法为Delegate一个包装类行为,类操作方法作为WeakReference。 当我要调用的事件处理程序我第一次检查,如果WeakReference.IsAlive是真实的。如果是的话我会调用它,否则我会将它从收集中移除,因为它意味着它所属的对象已被清空/垃圾收集。 然而,当我创建一个匿名的行动,并添加到我的事件聚合器它始终是活着,即使我空父

    0热度

    1回答

    我有一个扩展方法通过使用CAShapeLayer到一个动画边框添加到图像视图,这是我实现: extension UIImageView { func addAnimatedBorder() { let border = CAShapeLayer() //...setup animation border.position = self.center

    0热度

    1回答

    我开始使用scrapy捕获一些网页,并尝试使用scrapy中的管道保存数据保存到Sqlite3,但遇到这个问题如下:你能帮忙检查一下吗? 我已检查self.initialize()的类型,它是NoneType,但是当我将类型更改为字符串或布尔值,但它仍然给出samilar结果。 我不知道根本原因在哪里。 在最后部分,我列出weakref源代码,供大家参考: 'scrapy.spidermiddl

    0热度

    1回答

    我在这里https://joshsmithonwpf.wordpress.com/2009/04/06/a-mediator-prototype-for-wpf-apps/看着中介原型。 作者指出“我的第一个想法是在WeakReference中存储对Action的引用,由于垃圾收集器会丢弃仅由WeakReference对象引用的对象,所以似乎这会做到这一点不幸的是,并不那么简单,这种方法的问题是G

    1热度

    2回答

    如解释here,如果WeakReference的IsAlive返回true,则它不可信。现在,我试图了解correct way使用此: 错误: WeakReference dogRef = new WeakReference(dog); // Later, try to ref original Dog if (dogRef.IsAlive) { // Oops - garba

    -1热度

    1回答

    我想知道是否有一种简单的方法(或至少是一种方法)来找出程序中保留周期的位置。另外,如果我知道这些保留周期在哪里存在,取决于它们的类型(例如变量或闭包),我如何使它们变弱。我需要停止与自我(我的GameScene)的所有保留周期,以便它不再需要时释放并且我想重新启动它。 任何提示,建议,答案和反馈将不胜感激(并提供具体的代码和例子将是首选)。谢谢。 编辑: @ Sweeper的回答正是我一直在寻找的

    7热度

    1回答

    我想在使用Reactive库的PCL中实现WeakEventManager。 所以问题是它保持订阅者的弱引用,并且每次事件触发 - 它获取订阅者的代理并触发它,但是如果他无法从弱引用获取对象,则它会处理与代表的链接。 问题是,在短时间之后,弱引用返回null(但用户仍然活着),之后正在执行链接处理。所以我的问题是为什么会发生这种情况以及如何解决这个问题? 这怎么看起来像:(看笔记中的代码) pri

    0热度

    1回答

    - (void)test { __weak typeof(self) weakSelf = self; [weakSelf test]; } 编译到 static void _I_Foo_test(Foo * self, SEL _cmd) { __attribute__((objc_ownership(weak))) typeof(self) weakSelf =

    3热度

    1回答

    id __weak obj1 = obj0; 等于 id __weak obj1 = obj0; id __autoreleasing tmp = obj0; 在Pro的多线程和内存管理iOS和OSX。 但为什么obj1需要添加到autorelease池中,我认为使对象的弱指针不应该影响它的生命周期。

    0热度

    1回答

    如何将其转换为对自我的弱引用? NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(MyViewController.handleMessage(_:)), name: "NewMessage", object: nil) NSNotificationCenter.defaultCenter().