Ich habe ein paar interessante Anwendungsfälle gefunden. Diese Varianten nutzen die rangeOfString-Methode und ich habe das Gleichheitsbeispiel eingeschlossen, um zu zeigen, wie man am besten die Such- und Vergleichsfunktionen von Strings in Swift 2.0 nutzen kann.
//In viewDidLoad() weise ich die aktuelle Objektbeschreibung (ein Swift String) self.loadedObjectDescription zu
self.loadedObjectDescription = self.myObject!.description
Später, nachdem ich Änderungen an self.myObject vorgenommen habe, kann ich auf die folgenden string comparison-Routinen verweisen (die als lazy Variablen eingerichtet sind und einen Bool-Wert zurückgeben). Dies ermöglicht es, den Zustand jederzeit zu überprüfen.
lazy var objectHasChanges : Bool = {
guard self.myObject != nil else { return false }
return !(self.loadedObjectDescription == self.myObject!.description)
}()
Eine Variante davon tritt auf, wenn ich manchmal eine fehlende Eigenschaft an diesem Objekt analysieren muss. Eine Stringsuche ermöglicht es mir, ein bestimmtes Teilzeichenkette zu finden, die auf nil gesetzt ist (der Standardwert bei der Erstellung eines Objekts).
lazy var isMissingProperty : Bool = {
guard self.myObject != nil else { return true }
let emptyPropertyValue = "myProperty = nil"
return (self.myObject!.description.rangeOfString(emptyPropertyValue) != nil) ? true : false
}()