2016-07-20 7 views
0

Ich bin NSURLRequest Unterklasse. Erstellen von benutzerdefinierten Init-Methoden für die erstellte Klasse. Während der Codierung beenden i mit dem folgenden Fehler auf .. "'erforderlich' initializer 'init (Coder :)' muss von der Unterklasse von 'NSURLRequest' zur Verfügung gestellt werden" ...Swift: Fehler: "erforderlich" Initialisierung 'init (Coder :)' muss von der Unterklasse von 'NSURLRequest' bereitgestellt werden "

Mein Code ist

import Foundation 

class URLRequest: NSURLRequest { 
    init (UrlRequestWithURL: NSString, setHTTPBody: NSData, shouldHandleCookies: Bool, isHTTPMethodPost: Bool, withTimeoutInterval: NSTimeInterval) 
    { 

    } 

// Here it shows the error 
} 

Helfen Sie mir dies in Bezug auf ..

Neben den oben aufgeführten Frage ....

  1. Muss ich wirklich NSUrlRequest ableiten. (Zweck der Erstellung der URL-Anfrage-Variable, ist das Erstellen mehrerer Anfragen, die für die Variable URLSession zugewiesen werden müssen.) Gibt es sonst noch eine andere Möglichkeit, dass der Zweck erfüllt wird?

  2. So erstellen Sie eine Singleton-Klasse in swift. All diese Tage habe ich mit objc gearbeitet. Ich finde es schwierig, es zu formulieren.

+0

Re # 2: Alles über Swift "Singletons" wird in http://stackoverflow.com/questions/24024549/using-a-dispatch-once-singleton-model-in-swift gesagt. –

+0

Da NSURLRequest "NSCoding" implementiert, müssen Sie auch "NSCoding" implementieren, wofür Sie den erforderlichen Initialisierer implementieren müssen. Müssen Sie NSURLRequest ableiten? Wahrscheinlich nicht, aber Sie haben nicht klar erklärt, warum Sie das tun. Es besteht eine gute Chance, dass Sie eine Erweiterung verwenden – Paulw11

+0

hinzufügen init (Coder-Decoder: NSCoder) { super.init (Coder: Decoder) } und versuchen –

Antwort

0

würde ich Subklassifizieren NSURLRequest vermeiden. Ich habe sehr merkwürdiges Verhalten beobachtet, wenn ich das tue (und immer schlimmeres Fehlverhalten, je weiter man iOS-Version unterstützt).

Du bist besser dran Hinzufügen Kategorie Methoden und mit NSURLProtocol ‚s propertyForKey:inRequest: und setProperty:forKey:inRequest: Methoden.

Verwandte Themen