Ich möchte UNNotificationCategory
(UserNotifications) Unterklasse, weil ich Enums anstelle von fest codierten Zeichenfolgen als Kategorie-IDs verwenden möchten. Es ist eine Bequemlichkeit init innerhalb UNNotificationCategory
DefinitionUNNotificationCategory Unterklasse Initialisierung
public convenience init(identifier: String, actions: [UNNotificationAction], intentIdentifiers: [String], options: UNNotificationCategoryOptions = [])
Ich bin nicht in der Lage einen Initialisierer für meine Unterklasse zu schreiben. Ich verstehe, ich kann Initialisierer in der Unterklasse nicht benannt haben, weil ich die Bequemlichkeit Init der Oberklasse nennen möchte. Aber meine Bequemlichkeit init wirft auch Compier Fehler.
Hier ist der Code:
enum PushNotificationCategoryIdentifier:String {
}
convenience init(categoryIdentifier:PushNotificationCategoryIdentifier, actions:[UNNotificationAction], intentIdentifiers:[String], options: UNNotificationCategoryOptions) {
self.init(identifier: categoryIdentifier.rawValue, actions: actions, intentIdentifiers: intentIdentifiers, options: options)
}
Dies wird in Fehler führt: self.init ist nicht auf allen Pfaden aufgerufen, bevor von initializer Rückkehr
Ich denke, das liegt daran, dass diese Klasse implementiert wird in Objective-C und möglicherweise haben sie den benannten Initailizer nicht aus dem Convenience-Initailizer aufgerufen (da Objective-C-Klassen nicht den designierten Initialisierer von Convenience Initailizer aufrufen müssen).
Bedeutet das aber, dass ich UNNotificationCategory
nicht ableiten kann, wenn ich einen Initialisierer darin schreiben möchte?
Definieren von Init mit was? Ich kann UNNotificationCategory-Variablen nicht initialisieren, da alle nur Eigenschaften erhalten. –