I just saw a question which brought up something I didn't know about. Apparently sometimes you have to call object.self in a place that looks like you should just use "object." What does this usage mean?
for subclassObject in objects { switch subclassObject.self { <--- Here, why not "subclassObject" alone? case is Subclass1: doSomethingWith(subclassObject as! Subclass1) case is Subclass2: doSomethingWith(subclassObject as! Subclass2) case is Subclass3: doSomethingWith(subclassObject as! Subclass3) default: break } } Thanks, Rick > On Jul 8, 2016, at 08:15 , Dan Loewenherz via swift-users > <swift-users@swift.org> wrote: > > To my knowledge, you can’t do exactly what you’re trying to do, but this is > close: > > for subclassObject in objects { > switch subclassObject.self { > case is Subclass1: > doSomethingWith(subclassObject as! Subclass1) > > case is Subclass2: > doSomethingWith(subclassObject as! Subclass2) > > case is Subclass3: > doSomethingWith(subclassObject as! Subclass3) > > default: > break > } > } > > On Fri, Jul 8, 2016 at 10:11 AM, Nate Birkholz via swift-users > <swift-users@swift.org> wrote: > This looks like it doesn't work (swift 2.x), but wanted to be sure it's not > supported: > class Superclass {} > class Subclass1 : Superclass {} > class Subclass2 : Superclass {} > class Subclass3 : Superclass {} > > let sc1 = Subclass1() > let sc2 = Subclass2() > let sc3 = Subclass3() > > let objects : [Superclass] = [sc1, sc2, sc3] > > for subclassObject in objects { > switch subclassObject { > case let object = subclassObject as? Subclass1: > doSomethingWith(object) > case let object = subclassObject as? Subclass2: > doSomethingWith(object) > case let object = subclassObject as? Subclass3: > doSomethingWith(object) > default: > return > } > } > > This gives an error, expecting a colon (:) after object on every case. > > I wanted to be sure I wasn't missing something in my syntax (nor some > obvious-to-others reason this isn't supported) before going to swift > evolution. > > > -- > Nate Birkholz > > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users > > > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users -- Rick Mann rm...@latencyzero.com _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users