2016-03-30 1 views
1

Ich habe Login, Register, Tabellenansicht, Sammlung Ansicht, Kartenansicht Controller. In all diesen Controller-Klassen habe ich separate . Meine Basis-URL lautet "Http://some url". Und in meinem All-View-Controller rufe ich so an: ""Http://some url/login.php", "Http://some url/register/php" .Welschweise rufe ich jede URL in allen View-Controllern auf. Statt dessen ist es möglich, eine Klasse zu erstellen und alle URLs dort zu machen.Und den Namen der URL anzurufen, login.php or login, Wie klug in meiner ganzen Ansicht Controller?Wie erstellt man eine separate Klasse für alle API-Link und ruft diese API zu allen View-Controller

Wenn möglich kann mir jemand ein Codebeispiel vorschlagen, damit es sehr voll hilft.

ich swift 2.0

Dank

+0

Was Sie gerade beschrieben haben, ist eine perfekte Demonstration der OO-Programmierung, sondern passt auch die Form von Apples MVC-Architektur für iOS-Apps. Ja, was du machen willst, ist komplett möglich und kann mit einer Klasse gemacht werden, wie alles andere auch in OOP sein kann. – pbush25

Antwort

0

Ja bin mit einer neuen Datei machen, die von NSObject geerbt werden soll ..

Wie common.h und common.m

Und speichern Sie alle Ihre URLs in gemeinsamen Klasse im Bild als MACRO in .h Datei

Wenn Sie die URLs verwenden, fügen Sie diese allgemeine Klasse einfach zu Ihrem View-Controller hinzu und verwenden Sie sie.

enter image description here

+0

Aber kannst du mich einfach beschreiben, in meinem loginViewcontroler.swift, registervc.swift. Wie kann ich diesen URL-Namen aufrufen, um ihn in meinen View-Controllern zu verwenden ?? – user5513630

+0

das bedeutet, ich muss alle meine URL ans hinzufügen # deifne. Es ist klar. Aber wie kann ich all meinen View-Controller hinzufügen. Wie 'Import Common' oder ??? – user5513630

+0

Ja importieren Sie common.h in welcher Datei Sie auf diese URLs zugreifen möchten und verwenden Sie das Makro. –

2
import UIKit 

struct APIURLFactory { 
    let baseURL : NSURL! 

    init(baseURL: NSURL) { 
     self.baseURL = baseURL 
    } 

    func relativeURL(path: String) -> NSURL? { 
     return NSURL(string: path, relativeToURL: baseURL)?.absoluteURL 
    } 

    func relativeURLString(path: String) -> String? { 
     return NSURL(string: path, relativeToURL: baseURL)?.absoluteString 
    } 
} 

let myFactory = APIURLFactory(baseURL: NSURL(string: "http://my.php.api.com/")!) 

// This yields the URL http://my.php.api.com/login.php 
let loginURL = myFactory.relativeURL("login.php") 

// This yields the URL http://my.php.api.com/register/php 
let registerURL = myFactory.relativeURL("register/php") 
+0

Vielen Dank für Ihre Lösung. Aber kannst du mich einfach beschreiben, in meinem loginViewcontroler.swift, registervc.swift. Wie kann ich diesen URL-Namen aufrufen, um ihn in meinen View-Controllern zu verwenden ?? – user5513630

+0

all diese Code muss ich als NSObject-Klassen oder nomal View-Controller-Klassen imitieren? – user5513630

+0

danke, ich habe auch eine Frage, aber noch nicht die Antwort bekommen .. Können Sie http://StackOverflow.com/Questions/36267662/use-Single-Table-view-Controller-for-Each-Collection-view-cell- drücke – user5513630

Verwandte Themen