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().