2015-04-16 9 views
9

Mam klasy Objective-C w pliku .h podobny do tego:Jak migrować Objective-C stałe extern do Swift

@interface GlobalTags : NSObject 
    extern const BOOL showMessages; 
@end 

i plik .m podobny do tego:

@implementation GlobalTags 
    const BOOL showMessages = YES; 
@end 

Podsumowując, chcę mieć kilka zmiennych globalnych bez potrzeby instancji klasy, aby uzyskać do nich dostęp, importując ich pliki. Jaki jest najlepszy sposób na zrobienie tego w Swift?

Dzięki

EDIT: dotyczące coraz Swift zmiennych globalnych z kodu Objective-C, nie jest to możliwe (patrz ten post).

aby taki zmienne globalne widoczne w kodzie Objective-C, robię to w pliku Swift:

class GlobalTags: NSObject { 
    static let showMessages: Bool = true; 
} 

byłoby to poprawne/najlepszy sposób to zrobić?

Odpowiedz

7

To proste. W pliku Constants.swift:

let kStringConstKey : String = "YourKey" 
let kBoolConstKey : Bool = true 
let kIntConstKey : Int = 34 
let kDoubleConstKey : Double = 25.0 
+0

Nie ma potrzeby definiowania ich w ramach klasy lub w ramach innej struktury danych? – AppsDev

+0

nie. W pliku Constant.swift. Wystarczy usunąć treść klasy i po prostu zapisać te linie. Bez struktury klas ani danych. Co więcej. Swift nie potrzebuje plików do zaimportowania, jeśli są one opracowane w szybkim tempie iw tym samym obszarze roboczym projektu. – Saad

+1

Wygląda na to, że nie mogę zaimportować ich do klasy Objective-C ... – AppsDev

2

Utwórz jeden plik, taki jak Plik -> ios -> Plik Swift. Spowoduje to utworzenie pustego pliku.

Przykł.

import Foundation 
    let USER:Int = 0 
    let PROMOTER:Int = 1 
    let NETWORKERROR_DESC = "Network not reachable.Please check internet connection" as String 
    let NETWORKERROR_Title = "Network Unavilable" as String 

Teraz mogę uzyskać dostęp do USER z dowolnego miejsca w aplikacji.

+0

Dzięki za odpowiedź – AppsDev

Powiązane problemy