2016-04-20 15 views
-2

Ich habe Probleme beim Konvertieren von Objective C zu Swift 2.2 .. Kann mir jemand helfen .. ?? HierConverting Setter, Getter Variable von Ziel C zu Swift 2.2

ist der Code in Objective C

Variablen deklariert als

@property (nonatomic, assign) NSInteger currentViewControllerIndex; 
@property (nonatomic, getter = isWrapEnabled) BOOL wrapEnabled; 

und die variable Einstellung Funktionen in Objective C sind

- (void)setWrapEnabled:(BOOL)sWrapEnabled { 

    wrapEnabled = sWrapEnabled; 
    [self.view layoutIfNeeded]; 
} 

- (void)setCurrentViewControllerIndex:(NSInteger)curViewControllerIndex { 

    [self scrollToViewControllerAtIndex:curViewControllerIndex animated:NO]; 
} 

Dies ist, wie ich in Swift geschrieben haben

var tmpWrapEnabled : Bool = Bool() 
internal(set) var wrapEnabled : Bool? { 

    get { 

     return tmpWrapEnabled 
    } 

    set(newValue) { 

     if newValue == true { 

      tmpWrapEnabled = newValue! 
      self.view.layoutIfNeeded() 
     } 
    } 
} 

var tmpCurrentViewControllerIndex : NSInteger = 0 
internal(set) var currentViewControllerIndex : NSInteger? { 

    get { 
     return tmpCurrentViewControllerIndex 
    } 

    set(newValue) { 
     tmpCurrentViewControllerIndex = newValue! 
    } 
} 
+1

'Ich habe Probleme während der Konvertierung von Objective C zu Swift 2.2 'Bitte fügen Sie Ihren bestehenden Versuch ein (benutzen Sie den [Bearbeiten] Knopf, um Ihre Frage zu bearbeiten). – Moritz

+0

Werfen Sie einen Blick auf den Abschnitt * Property Observers * im [Swift Language Guide] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Properties.html) – vadian

Antwort

1

Grundsätzlich braucht man nur die didSet Beobachter, ansonsten verhält sich die Variable wie eine normale Variable.

var wrapEnabled : Bool { 
    didSet { 
     if wrapEnabled { 
     self.view.layoutIfNeeded() 
     } 
    } 
} 

var currentViewControllerIndex : Int { 
    didSet { 
    scrollToViewControllerAtIndex(currentViewControllerIndex, animated:false) 
    } 
} 

Beachten Sie, dass die Beobachter nicht aufgerufen werden, wenn der Anfangswert der Variablen zugewiesen wird.