Okay. I coudln't find official documentation on this, and I don't currently need to do this, but wanted to fully understand it.
> On Nov 15, 2016, at 17:27 , zh ao <owe...@gmail.com> wrote: > > 'Default' implementation in protocol extension is used as fail safe. You > should not consider it like something super class does. If you want it that > way, use class inheritance instead. > > Zhaoxin > > Get Outlook for iOS > > _____________________________ > From: Rick Mann via swift-users <swift-users@swift.org> > Sent: 星期三, 十一月 16, 2016 07:51 > Subject: Re: [swift-users] Attempting to call default protocol implementation > crashes Playground > To: Dan Loewenherz <d...@lionheartsw.com> > Cc: swift-users <swift-users@swift.org> > > > Well, this is a standard protocol default implementation. I was experimenting > to see if it was possible to call the default implementation after providing > a concrete implementation. > > > On Nov 15, 2016, at 14:47 , Dan Loewenherz <d...@lionheartsw.com> wrote: > > > > What are you trying to accomplish here, more concretely? > > > > My first thought is that you shouldn't implement the same function in both > > a protocol extension and a conforming class. Why not just give them > > different names and call the function from within the extension instead of > > from the class? E.g. > > > > protocol FooPro { > > func _fooFunc() > > } > > > > extension FooPro { > > func fooFunc() { > > print("fooFunc default") > > _fooFunc() > > } > > } > > > > class FooClass: FooPro { > > func _fooFunc() { > > print("fooFunc FooClass") > > } > > } > > > > let fc = FooClass() > > fc.fooFunc() > > > > Dan > > > > On Tue, Nov 15, 2016 at 4:28 PM, Rick Mann via swift-users > > <swift-users@swift.org> wrote: > > The following gives Xcode 8.1 a very hard time. Eventually I get a Bad > > Access on the last line. I'm guessing it's a recursive call. Is there any > > way to call the default implementation from a "real" implementation? > > > > protocol FooPro > > { > > func fooFunc() > > } > > > > extension FooPro > > { > > func > > fooFunc() > > { > > print("fooFunc default") > > } > > } > > > > class FooClass : FooPro > > { > > func > > fooFunc() > > { > > (self as FooPro).fooFunc() > > print("fooFunc FooClass") > > } > > } > > > > let fc: FooPro = FooClass() > > fc.fooFunc() > > > > > > Thanks! > > > > > > -- > > Rick Mann > > rm...@latencyzero.com > > > > > > _______________________________________________ > > 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 > > -- Rick Mann rm...@latencyzero.com _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users