[英]Memory leak situation when storing a URLSession task in a property in Swift
我試圖了解 Swift 語言中的 memory 泄漏情況,但有一種情況我仍然想知道。 我創建了一個新的 UIViewController 並調用 fetch function 並將獲取任務存儲在屬性中而不啟動任務,然后我關閉了這個 UIViewController。 我發現這個UIViewContr ...
[英]Memory leak situation when storing a URLSession task in a property in Swift
我試圖了解 Swift 語言中的 memory 泄漏情況,但有一種情況我仍然想知道。 我創建了一個新的 UIViewController 並調用 fetch function 並將獲取任務存儲在屬性中而不啟動任務,然后我關閉了這個 UIViewController。 我發現這個UIViewContr ...
[英]Why does this NOT leak memory? RxFeedback
class ViewModel { ... func state(with bindings: @escaping (Driver<State>) -> Signal<Event>) -> Driver<State> { Driver. ...
[英]UIVIewController Not Getting Deinitialized When Popping
我正在一個應用程序中構建一個設置屏幕,其中有一個單元格列表。 如果用戶點擊一個單元格,它會將另一個 controller 推到堆棧上。 但是,我在我的應用程序的幾個地方都有這個流程。 因此,我決定重用一個通用的 controller 並用部分初始化它(取決於哪個單元被點擊) 但是,當彈出 UIVie ...
[英]How to use Xcode static analyzer command line to generate an HTML report of warnings?
我安裝了 llvm 並使用scan-build靜態分析了一個非常簡單的演示項目。 在這個項目中,我故意創建了一個保留周期,Xcode 可以立即在編輯器中顯示保留周期警告。 但是,如果我切換到使用下面的scan-build命令行工具,它會說沒有發現任何錯誤並且最終沒有生成報告。 這是保留周期代碼片段 ...
[英]Do we need to explicitly use capture list for weak variables in swift closure?
我對閉包的理解是,它會強捕獲所有直接引用的對象,而不管 object 變量在閉包外是weak聲明還是strong聲明,如果我們想弱捕獲它們,那么我們需要顯式定義一個捕獲列表並標記它們在那個捕獲列表中weak 。obj?.callback = { [weak obj] in obj?.per ...
[英]Weird weak self and retain cycle behaviour
讓我們考慮以下代碼: 所以我們有一個打印機 class,它包含一個延遲器 class,它對打印機執行操作並延遲執行。 我們這樣稱呼它: 很清楚為什么 Printer1 創建保留循環。 Action 被傳遞到具有隱式強自我的 delayer 中,由於 Delayer 歸 Printer 所有,因此無 ...
[英]SwiftUI retain cycle in view hierarchy
我有以下具有保留周期的視圖層次結構,這是我可以重現問題的最簡單方法。 所有視圖模型和屬性都必須保留,因為它們在原始解決方案中是需要的: 如果我運行應用程序,點擊StartCooking ,然后點擊StopCooking並檢查 memory 圖,我仍然看到SubViewModel的實例,這意味着此代碼 ...
[英]How box allocated instance is retained in Swift closure?
我試圖了解如何保留盒子分配的實例。 在這里的屏幕上,我們 沒關系,這是我所期望的,正如我所提到的,因為 -> Box 包裝Optional<A>而不創建新變量,它破壞了它下一個例子也是合法的: 但是這個例子讓我有點困惑 為什么在上一個示例中,當 scope 結束時,盒子分配的實例 ...
[英]break retain cycle in a block nested in another block
有時我使用嵌套在另一個塊中的塊,這是我的代碼 我懷疑內部塊還有保留周期嗎? 我的問題是在這種情況下打破保留周期的正確方法是什么? 這是額外的討論,正如許多朋友提到的那樣,如果我刪除__strong typeof(weakSelf) strongSelf = weakSelf; ,內部塊 ...
[英]Is Java WeakReference the same as the swift weak keyword?
我知道這篇文章中已經回答了一個類似的問題。 但是,我仍然對 java 是否存在保留周期問題感到困惑,因為 java 也有 WeakReference class。 那么,它們的目的是否相同? 他們兩個有什么區別? ...
[英]If a UIViewController is successfully de-allocated, no retain cycles?
我試圖避免在我的代碼中保留循環,我有一個我不確定的問題。 任何見解將不勝感激。 如果一個 UIViewController 被成功解除分配,這是否也意味着 viewController 內的所有 class 對象也已成功從 memory 中釋放? 我用下面的 function 來判斷一個 UIVi ...
[英]swift - retain cycle when calling inner function?
當內部 function progressComplete在沒有弱自我的情況下調用內部閉包時,我是否有一個保留周期( progressComplete )我使用自我? ...
[英]Why doesn't Swift ARC break property references first to prevent retain cycles?
我只是想知道當代碼塊超出范圍時 ARC 是如何工作的。 我假設所有引用變量都設置為 nil/destroyed 並排除了屬性,並且所有引用計數為 0 的對象都被銷毀。 這個場景: 或者可能所有的變量和屬性引用從上到下都設置為 nil,這將保留任何保留循環,因為在訪問屬性之前 A 和 B 是 ni ...
[英]Why Is There No Retain Cycle In ReceiveValue Block Combine Subscription
我決心完全理解為什么這不會導致參考周期。 總的來說,這里內存管理的每個階段都在發生什么。 我有以下設置: 所以當我創建一個 PresenterView 然后關閉它時,我得到了一個成功的 deinit 打印。 但是我不明白為什么它們在這里沒有參考循環。 DataListViewModel有c ...
[英]Is weak self needed for table view cell button closure
為了避免保留循環,是否需要在 UITableViewCell 按鈕操作中使用[weak self] in ? 例子: 在 ViewController 的cellForRow 在 TableViewCell 類中 ...
[英]Swift How to return child object that keeps parent object as long as child lives in memory
我考慮是否可以從在父對象中創建的函數子對象返回,該子對象將保留對其父對象的引用並防止父對象從內存中釋放。 同時我不想保留周期和內存泄漏。 客戶端代碼 我可以添加 它會創建保留循環和內存泄漏 這不會阻止 ObjectA 的釋放 ...
[英]Should I use `weak self` when making asynchronous network request?
這是我從網絡中獲取一些數據的方法: 正如您所注意到的,它具有轉義閉包。 這是我在 ViewModel 中調用上述方法的方式: 問題是我應該弱地還是強地捕捉self ? 為什么? 我想我可以強烈地捕捉到它。 因為, fetchProducts是一個以閉包為參數的函數。 但是,我可能錯了。 但是 ...
[英]Am I capturing self in this nested function? The compiler does not fire a warning
我找不到任何有關此的官方文檔,並且那里有不同的意見。 在以下情況下,一切都很好。 但是,如果我進行以下更改,我不再需要使用unowned self ,但我仍然擔心捕獲自我。 我應該擔心嗎? 如果不是,為什么? ...
[英]Cell isn't being deallocated after table view is dismissed, being referenced by closure's context
我正在創建一個自定義表格視圖單元格,它允許用戶添加、拍攝或查看上傳的照片。 我發現即使在表格視圖被解雇之后,這個單元格也會永遠留在 memory 中,從而產生奇怪的memory graph 。 我希望正確關閉單元格,但我很難理解發生了什么。 該圖顯示我的單元格被addPhotoTapAction.c ...
[英]Should I check the existence of weakself before use @strongify(self) in ReactiveObjc?
作為weak和strong中的另一種做法,建議我們在加強之前先檢查weakself是否為null。 它看起來像這樣: 我知道 rac 前面做了很多工作,但我想確定我們是否有必要檢查它。 如果沒有,@strongify(self) 如何做到這一點。 謝謝。 ...