cost 169 ms
Memory 在 Swift 中的屬性中存儲 URLSession 任務時的泄漏情況

[英]Memory leak situation when storing a URLSession task in a property in Swift

我試圖了解 Swift 語言中的 memory 泄漏情況,但有一種情況我仍然想知道。 我創建了一個新的 UIViewController 並調用 fetch function 並將獲取任務存儲在屬性中而不啟動任務,然后我關閉了這個 UIViewController。 我發現這個UIViewContr ...

UIVIewController 彈出時未取消初始化

[英]UIVIewController Not Getting Deinitialized When Popping

我正在一個應用程序中構建一個設置屏幕,其中有一個單元格列表。 如果用戶點擊一個單元格,它會將另一個 controller 推到堆棧上。 但是,我在我的應用程序的幾個地方都有這個流程。 因此,我決定重用一個通用的 controller 並用部分初始化它(取決於哪個單元被點擊) 但是,當彈出 UIVie ...

如何使用 Xcode static 分析器命令行生成 HTML 警告報告?

[英]How to use Xcode static analyzer command line to generate an HTML report of warnings?

我安裝了 llvm 並使用scan-build靜態分析了一個非常簡單的演示項目。 在這個項目中,我故意創建了一個保留周期,Xcode 可以立即在編輯器中顯示保留周期警告。 但是,如果我切換到使用下面的scan-build命令行工具,它會說沒有發現任何錯誤並且最終沒有生成報告。 這是保留周期代碼片段 ...

我們是否需要在 swift 閉包中為弱變量顯式使用捕獲列表?

[英]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 在視圖層次結構中保留循環

[英]SwiftUI retain cycle in view hierarchy

我有以下具有保留周期的視圖層次結構,這是我可以重現問題的最簡單方法。 所有視圖模型和屬性都必須保留,因為它們在原始解決方案中是需要的: 如果我運行應用程序,點擊StartCooking ,然后點擊StopCooking並檢查 memory 圖,我仍然看到SubViewModel的實例,這意味着此代碼 ...

如何在 Swift 閉包中保留分配的實例?

[英]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; ,內部塊 ...

如果 UIViewController 成功解除分配,沒有保留周期?

[英]If a UIViewController is successfully de-allocated, no retain cycles?

我試圖避免在我的代碼中保留循環,我有一個我不確定的問題。 任何見解將不勝感激。 如果一個 UIViewController 被成功解除分配,這是否也意味着 viewController 內的所有 class 對象也已成功從 memory 中釋放? 我用下面的 function 來判斷一個 UIVi ...

為什么 Swift ARC 不首先中斷屬性引用以防止保留循環?

[英]Why doesn't Swift ARC break property references first to prevent retain cycles?

我只是想知道當代碼塊超出范圍時 ARC 是如何工作的。 我假設所有引用變量都設置為 nil/destroyed 並排除了屬性,並且所有引用計數為 0 的對象都被銷毀。 這個場景: 或者可能所有的變量和屬性引用從上到下都設置為 nil,這將保留任何保留循環,因為在訪問屬性之前 A 和 B 是 ni ...

ReceiveValue 塊合並訂閱中為什么沒有保留周期

[英]Why Is There No Retain Cycle In ReceiveValue Block Combine Subscription

我決心完全理解為什么這不會導致參考周期。 總的來說,這里內存管理的每個階段都在發生什么。 我有以下設置: 所以當我創建一個 PresenterView 然后關閉它時,我得到了一個成功的 deinit 打印。 但是我不明白為什么它們在這里沒有參考循環。 DataListViewModel有c ...

Swift如何返回只要孩子生活在內存中就保持父對象的子對象

[英]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是一個以閉包為參數的函數。 但是,我可能錯了。 但是 ...

我是否在這個嵌套的 function 中捕獲自我? 編譯器不會發出警告

[英]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 ...

在 ReactiveObjc 中使用 @strongify(self) 之前,我應該檢查弱自我的存在嗎?

[英]Should I check the existence of weakself before use @strongify(self) in ReactiveObjc?

作為weak和strong中的另一種做法,建議我們在加強之前先檢查weakself是否為null。 它看起來像這樣: 我知道 rac 前面做了很多工作,但我想確定我們是否有必要檢查它。 如果沒有,@strongify(self) 如何做到這一點。 謝謝。 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM