[swift-evolution] [Accepted] SE-0064: Referencing the Objective-C selector of property getters and setters

Douglas Gregor dgregor at apple.com
Mon Apr 18 20:45:06 CDT 2016



Sent from my iPhone

On Apr 18, 2016, at 4:11 PM, Robert Schwalbe via swift-evolution <swift-evolution at swift.org> wrote:

>> Hello Robert,
>> 
>> My comment below:
>> 
>>> Per my reading of SE-0022, would SE-0064 institute the first exception to the #selector expression where the expression is not a reference to a method?
>> 
>> Indeed. But I don’t see the issue. It still generates a selector for an Objective-C method.
> 
> Thank you David.
> 
> I do agree it generates a selector. My objection would be that there are no Objective-C methods named “getter” or “setter”.

Objective-C's @property syntax uses "getter" and "setter" to name the getter and setter selectors, and that's the information being extracted by this Swift expression. 

  - Doug

> 
>>> In the spirit of taking my lumps for not speaking up when asked to do so, was there any discussion that considered:
>>> 
>>>  let firstNameGetter = #selector(get: Person.firstName)
>>>  let firstNameSetter = #selector(set: Person.firstName)
>>> 
>>> in lieu of the accepted:
>>> 
>>>  let firstNameGetter = #selector(getter: Person.firstName)
>>>  let firstNameSetter = #selector(setter: Person.firstName)
>>> 
>>> My concern would be a growing list of permitted non method name parameters to the #selector expression.
>> 
>> I don’t think get/set was specifically mentioned. My personal opinion is that it does not read well because it reads as an action.
> 
> I could go along with you that it reads as an action, but I also think we could come up with tons of existing toolbox method names that would also read as actions.
> 
> Maybe I am hung up on insisting that the expression must be an actual name of an Objective-C method.
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution


More information about the swift-evolution mailing list