Ah. That's the difference. Okay. Nevertheless, the Apple docs on the matter are unclear at best (https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html):
"Declarations marked with the dynamic modifier must also be explicitly marked with the @objc attribute unless the @objc attribute is implicitly added by the declaration’s context. For information about when the @objcattribute is implicitly added, see Declaration Attributes in The Swift Programming Language (Swift 4)." The referenced doc has a lot of stuff, so it's hard to zero in on the discussion of implicit-objc, but there's this: "The compiler implicitly adds the objc attribute to subclasses of any class defined in Objective-C." To me, this means that my NSObject-derived class is implicitly @objc, and so the members within it (the declaration context) shouldn't need @objc as well. To help me understand better, can you have dynamic without an implicit or explicit @objc? It seems not, and if not, why isn't it enough for dynamic to then just imply @objc to the compiler? Thanks, Rick > On Sep 13, 2017, at 17:06 , Hooman Mehr <hoo...@mac.com> wrote: > > When you create a new project in Xcode 9, the defaults for compiler settings > are different. The errors you see are the result of running in full (strict) > Swift 4.0 mode which has some such breaking changes. > >> On Sep 13, 2017, at 3:56 PM, Rick Mann via swift-users >> <swift-users@swift.org> wrote: >> >> I have an iOS app in which I'm factoring out code into a Framework. In Xcode >> 9 GM (Swift 4), the code builds fine when it's a monolithic app, but some of >> the files I've pulled into the framework are no longer compiling. One of the >> errors is: >> >> Model.swift:471:14: 'dynamic' var 'dateCreated' must also be '@objc' >> >> The class looks like: >> >> import Foundation >> >> class >> MPObject : NSObject >> { >> .... >> dynamic var dateCreated : Date? >> .... >> } >> >> If I add @objc to each dynamic member, it seems to silence the errors, but >> the @objc should be implicit due to inheriting from NSObject, and as I said, >> it builds without error as a monolithic app. >> >> -- >> 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