designated-initializer

    2熱度

    4回答

    我是swift新手,在PlacesTableViewController類中聲明我的初始化器時出現問題。它提示我,當我加入Super.init,它會提示我「Super.init不是從初始化返回之前被稱爲」: "Must call a designated initializer of the superclass 'UITableViewController'" 這是我的PlacesTableVi

    2熱度

    2回答

    現在我已經有這個問題混淆了我的思想相當長的一段時間,我真的需要有人爲我澄清這一點。 1)編譯器在被子類型的init方法調用時如何確定指定的初始化方法?因爲它被認爲是覆蓋面最廣的一個。 2)當使用多個init方法進行子類化時,每個類是否都有自己指定的初始化方法?對問題2的回答會增加對理解這一點的幫助。 3)當多個類有一個指定的初始化程序時,其他init方法如何在其類中調用指定的初始化程序?以及他們怎

    1熱度

    1回答

    我對繼承的代碼庫工作,並試圖解決以下警告: 指定初始化應該只調用上「超級」 一個指定初始化指定的初始化缺少一個「超級」調用父類的指定初始化 的代碼是: - (id)initWithCoder:(NSCoder *)aDecoder { self = [self initWithFrame:[CDCUtility getScreenBounds]]; //switching to supe

    2熱度

    1回答

    根據the docs應該始終調用指定的初始化程序,但是當我嘗試獲取沒有權限的血型用戶時,創建了NSError,但其指定的初始化程序(- [NSError initWithDomain:code:userInfo:])爲從未打過電話 我正在使用的代碼是: HKHealthStore *healthStore = [[HKHealthStore alloc] init]; HKBloodTypeOb

    0熱度

    1回答

    我有一個UINavigationController子類: fileprivate class NavController: UINavigationController { override init(navigationBarClass: AnyClass?, toolbarClass: AnyClass?) { super.init(navigationBarClass

    0熱度

    1回答

    這是什麼說法,如蘋果DOC聲明: 有時一個超類的指定初始化可能是足夠的子類,所以沒有必要爲子類來實現自己的指定初始化。其他時候,一個類的指定初始值設定項可能是其超類指定初始值設定項的重寫版本。當子類需要補充由超類的指定初始化器執行的工作時,即使子類沒有添加任何它自己的實例變量(或者它添加的實例變量不需要顯式初始化),這也經常是這種情況。 Apple's Documentation 難道說,我沒有創

    0熱度

    1回答

    有什麼方法可以找出哪個初始化程序是Xcode中超類中指定的初始化程序? 我鍵入super().init ..然後,Xcode顯示超類的所有初始化方法。我想知道是否有任何符號或符號指出哪一個是指定的? 另外一個快速的問題。允許子類中的指定初始化程序(DI)僅調用超類中的便利初始值設定程序(CI),因爲超類中的CI最終將調用超類中的DI。糾正我,如果我錯了,謝謝。

    3熱度

    1回答

    我已經閱讀了objective-c中的指定和便利初始值設定項目,我覺得我對它們的使用方式和原因有了很好的理解。我只有幾個未解決的問題,真的很好。 假設您有一個直接從NSObject繼承的類,並且您爲其創建了一個指定的初始化程序。 我知道你現在可以使用標記NS_DESIGNATED_INITIALIZER但我想知道如果這意味着它迫使您在指定初始化分開,同一個類中,第一個覆蓋INIT與你指定的初始化一

    8熱度

    2回答

    我試圖創建的UIBarButtonItem的一個簡單的斯威夫特子類: class LabelBarButtonItem: UIBarButtonItem { let label: UILabel init(text: String) { self.label = UILabel(frame: CGRectZero) self.label.tintColor

    1熱度

    1回答

    我試圖將一個協議擴展初始化器注入到現有類的指定初始化器中。如果不覆蓋類中指定的初始化器,我認爲沒有辦法繞過它,然後調用協議擴展初始化器。 下面是什麼我想,特別是與UIViewController類: class FirstViewController: UIViewController, MyProtocol { var locationManager: CLLocationManag