retain-cycle

    0熱度

    1回答

    爲了使用封閉的說法UIBarButtonItem我使用一個子類: class ActionBarButtonItem: UIBarButtonItem { private var actionHandler: (() -> Void)? convenience init(title: String?, style: UIBarButtonItemStyle, actionHa

    2熱度

    2回答

    在我正在開發的應用程序中,需要定期輪詢設備的數據,如加速度,陀螺儀和運動。我編寫了以下課程來處理所有相關任務(我還使用第三方庫SOMotionDetector來檢測設備是否正在移動,如果只有這樣,我會調用didReceiveAcceleration委託方法)。 import CoreMotion import Foundation import SOMotionDetector proto

    1熱度

    1回答

    我想知道當你在內存管理方面(即我想避免一個保留週期)在Swift中爲一個塊分配一個函數時它意味着什麼。 例如,假設我有如下定義按鈕: class Button { var wasTapped:() -> Void } 我用它在一個視圖控制器像這樣: class ViewController { let button: Button func setUpButt

    0熱度

    1回答

    我有一個mainViewController,我想在其中顯示一個未定義計數的childViewControllers的小網格形式。 childViewControllers是基於數據創建的,因此我無法預先知道它們的數量。看起來,我只能與f.ex互動。如果它保留在mainViewController(f.ex.在聲明的變量)保留的childViewController中的按鈕 - 所以我的問題是,如

    0熱度

    1回答

    我只花了一個小時試圖修復我的代碼中的保留週期。這基本上是視圖控制器在解散後沒有被釋放。 但是,當我使用儀器檢查內存泄漏時,它通過了每次泄漏檢查。請看下面的圖片。 的問題是,當我宣佈類協議,我忘了標註委託作爲弱......但是怎麼來的儀器沒有注意到這個保留週期? 我對內存管理相當陌生,如果我的問題是愚蠢的,請理解。謝謝。 :)

    0熱度

    2回答

    比方說,我有一個類Animal class Animal: NSObject { var name: String = "" var weight: Double = 0 } 在我的視圖控制器#1,我有這些對象的數組: class ViewController1: UIViewController { var animals: [Animal] = [ ....

    4熱度

    1回答

    有人可以幫助解釋爲什麼obj2會被取消嗎? (我認爲有一個保留週期) OBJ2和OBJ1是如此相似: 他們都有一個名爲printNameLength屬性,這兩者是一個封閉,這既捕獲自(是嗎?)。 但obj2得到deinit(而obj1不是因爲有一個保留週期),它讓我感到驚訝,我不知道爲什麼。 非常感謝。 class myClass1 { var name: String l

    0熱度

    1回答

    我想了解xcode調試工具如何在檢測保留週期方面工作。 我有一個簡單的父和子視圖控制器都擁有彼此的引用。 並且在幾次執行應用程序打開關閉VC之後,當我打開調試工具時,它既不顯示保留週期也不存在運行時問題。 請從下面的代碼示例和連接的Xcode調試工具的截圖 class ViewController: UIViewController { var child: ChildViewContr

    0熱度

    1回答

    我做了一個保留週期,但在剖析中,這些工具似乎找不到這個明顯的保留週期 首先,ViewController將保留SubViewController作爲屬性subVC,並將其設置爲SubViewController的委託。 @interface ViewController()<TestDelegate> @property(nonatomic,strong) UIViewController* s

    1熱度

    2回答

    let observer = CFRunLoopObserverCreateWithHandler(kCFAllocatorDefault, CFRunLoopActivity.BeforeWaiting.rawValue, false, 0, { (observer, activity) in self.doSomething() }) CFRunLoopA