2016-06-28 9 views
2

Zugriff Methode Hier ist meine settings.swift Datei:in einer anderen Swift-Datei in AppDelegate

import Foundation 

class Settings { 

    func setDefaultSettings() { 
    } 
} 

I didFinishLaunchingWithOptions die Funktion in AppDelegate zugreifen möchte. Ich habe versucht,

Settings.setDefaultSettings() anzurufen, aber es hat nicht funktioniert.

Antwort

0

Sie haben zwei Möglichkeiten, diese Arbeit zu machen:

1.Initialise Objekt der Settings-Klasse

Settings().setDefaultSettings() 

oder

let settings = Settings() 
settings.setDefaultSettings() 

2.Make die Funktion statisch

static func setDefaultSettings(){...} 

in diesem Fall können Sie es Ihren Weg nennen

Settings.setDefaultSettings() 
+0

Danke, es funktioniert. Ich bekomme jedoch einen Fehler. Verwendung der unaufgelösten Kennung 'Einstellungen' Aber es läuft immer noch ohne Probleme – Exceptions

+0

Versuchen Sie, Ihre Klasseneinstellungen als 'public' zu markieren. Möglicherweise wird dies das Problem beheben. – Elena

1

Methode kann auf zwei Arten definiert werden: Instanzmethode und Klasse Methoden Sie haben die Methode als Instance-Methode deklariert, auf die über die Instanz der Klasse zugegriffen werden kann. Also, um die Methoden zugreifen muss Instanz der Klasse, die erstellt werden können als

let settingObj = Settings() 
settingObj.setDefaultSettings() 

------------------------------------------------- 

//Combined statement 
Settings().setDefaultSettings() 

und class method können mit dem Stichwort static oder class geschrieben werden. Sie können auf den Klassennamen selbst zugreifen. Bitte beachten Sie das folgende Beispiel

class Settings { 

    class func setDefaultSettings() 
    { 
     print("Default Settings") 
    } 
} 

Jetzt können Sie die Methode aufrufen, direkt durch den Klassennamen

Settings.setDefaultSettings() 
+0

Eine Erklärung, was das Problem ist und warum Ihre Antwort eine Lösung ist, wäre nett. –

+0

Entschuldigung, ich verstehe nicht, ist meine Antwort korrekt oder muss ich eine Erklärung hinzufügen? –

+0

Es ist richtig, aber eine gute Antwort sollte erklären, was der Fehler war und warum Ihre Lösung korrekt ist. –

0

Sie diese Methode zugreifen können wie folgt

1) Erstellen einer Klasse NSObject wie folgt definieren. (GLOBAL.swift)

class GLOBAL : NSObject { 

    //sharedInstance 
    static let sharedInstance = GLOBAL() 
} 

2) Ihre Methode hier.

class GLOBAL : NSObject { 

    //sharedInstance 
    static let sharedInstance = GLOBAL() 

    func setDefaultSettings() { 

    } 
} 

3) Verwenden Sie die obige Methode wie folgt.

GLOBAL.sharedInstance.setDefaultSettings() 

Sie können auch und auch jede andere Klasse verwenden Klasse diese setDefaultSettings() zu setzen.

+0

Sie haben übrigens die Caps-Lock-Taste gedrückt. ;-) Bitte beachten Sie die Namenskonventionen für Swift und Objective-C. –

+0

@Amit Singh können Sie auch meine Antwort bearbeiten ...... Die meisten willkommen – iMHitesh

Verwandte Themen