Jordan, So sorry, my snippet really wasn’t helpful there! Gah. I realise the extension wasn’t right! Sorry *facepalm*.
So I have a project. Its deployment target is iOS 10 (because we need 10.0 compatibility for the foreseeable future). If I add the following code I get errors when it builds: class MyViewControllerSubclass: UIViewController { @available(iOS, introduced: 11.0) override var additionalSafeAreaInsets: UIEdgeInsets { didSet { // Need to do work here } } } My only solution at this stage is currently to KVO on the AdditionalSafeAreaInsets property, which works, but this seems to point out a language deficiency. Thanks > On 3 Aug 2017, at 3:24 am, Jordan Rose <jordan_r...@apple.com> wrote: > > I'm not sure why you're using 'override' in an extension. Did you mean to put > that in a subclass? It seems to work for me there. > > Yes, Swift will not let you replace existing methods/properties using an > extension if it can statically see that the method/property already exists. > (It's not even safe to do that in Objective-C, but the language doesn't stop > you.) > > Jordan > > >> On Aug 1, 2017, at 22:46, Rod Brown via swift-users <swift-users@swift.org >> <mailto:swift-users@swift.org>> wrote: >> >> Looks like this is a duplicate of this issue: >> >> https://bugs.swift.org/browse/SR-1486 <https://bugs.swift.org/browse/SR-1486> >> >> I’m curious if anyone knows whether that is actually a bug, or a behavioural >> choice on Swift’s part? >> >> >>> On 2 Aug 2017, at 10:31 am, Rod Brown via swift-users >>> <swift-users@swift.org <mailto:swift-users@swift.org>> wrote: >>> >>> Hi everyone, >>> >>> Something I’ve come across in iOS 11 is that you can’t override properties >>> that are only available on iOS 11 when deploying with a deployment target >>> less than the current target. >>> >>> For example the following code is invalid: >>> >>> extension UIViewController { >>> >>> @available(iOS, introduced: 11.0) >>> open override var additionalSafeAreaInsets: UIEdgeInsets { >>> didSet { >>> // Do work here only relevant to iOS 11 >>> } >>> } >>> } >>> >>> This would be easily overridden in Obj-C, but I can’t do it in Swift. Is >>> there any reason why this limitation exists? >>> >>> Thanks, >>> >>> Rod >>> _______________________________________________ >>> swift-users mailing list >>> swift-users@swift.org <mailto:swift-users@swift.org> >>> https://lists.swift.org/mailman/listinfo/swift-users >>> <https://lists.swift.org/mailman/listinfo/swift-users> >> >> _______________________________________________ >> swift-users mailing list >> swift-users@swift.org <mailto: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