[swift-evolution] [Idea] Make Boolean @objc properties reflect better into Objective-C

Angelo Villegas gelo.web at gmail.com
Wed Feb 24 02:58:49 CST 2016


Initialising a getter for a Boolean property is the default behaviour so a
+1 vote from me.


- Angelo

On Wed, 24 Feb 2016 at 4:43 PM Radosław Pietruszewski <
swift-evolution at swift.org> wrote:

> Seems like an easy win, so I’m leaning towards a +1.
>
> OTOH, are there any other cases where Swift -> ObjC automatically changes
> names of things to optimize for ObjC? If we don’t do more of that (the '"Add
> needless words" to Objective-C method names’ thread, or other quick wins
> like this one), it would be weird to make just this one exception, a single
> special case. I fear this would be more surprising than not changing
> anything at all.
>
> — Radek
>
> On 23 Feb 2016, at 22:00, Douglas Gregor via swift-evolution <
> swift-evolution at swift.org> wrote:
>
> Hi all,
>
> The Swift API guidelines state that Boolean properties should reflect
> assertions about the receiver, so in Swift one would expect:
>
> class Foo {
>   var isEnabled: Bool // good
> }
>
> rather than
>
> class Foo {
>   var enabled: Bool // not Swifty
> }
>
> When the property is @objc, e.g.,
>
> class Foo : NSObject {
>   @objc var isEnabled: Bool
> }
>
> The resulting Objective-C property doesn’t follow the Cocoa guidelines
> for Objective-C
> <https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingIvarsAndTypes.html#//apple_ref/doc/uid/20001284-BAJGIIJE>
> :
>
> @property (readwrite,nonatomic) BOOL isEnabled;
>
> because those guidelines state that properties do not use the “is” prefix.
>
> My proposal is to strip the “is” prefix from the Objective-C name, but
> leave it off the getter, e.g.,
>
> @property (readwrite,nonatomic,getter=isEnabled) BOOL enabled;
>
> The change would have no effect on the Swift name; it will only affect the
> Objective-C property name and setter name.
>
> Thoughts?
>
> - Doug
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160224/b15cf3f4/attachment.html>


More information about the swift-evolution mailing list