Re: Method name starts with "set"

2016-08-02 Thread Pascal Bourguignon


> Le 2 août 2016 à 07:11, Trygve Inda  a écrit :
> 
> I have a class where I would like to have a method name like:
> 
> -(void)setMaximumOperations:(NSInteger)operations
> {
>  [[self operationQueue] setMaxConcurrentOperationCount:operations];
> 
>   ... Do other stuff ...
> }
> 
> Is this a bad idea? There is no property called "maximumOperations" in my
> class but using a "set" method name in this way may imply there is, although
> the compiler likely doesn't care.
> 
> How is the best way to name something like this?

Actually, there is no difference between a property and a pair of getter/setter 
methods.  Here you have defined a write-only property, and since you have this 
method, you could write: 

   o.maximumOperations=42;

as well as:

   [o setMaximumOperations:42]

The same code is generated in both cases. 

If you added a method -(NSInteger)maximumOperations then you'd have a 
read-write property. 

You can call it a derived property, since it is not implemented directly as a 
slot of your instances. 



-- 
__Pascal Bourguignon__

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Method name starts with "set"

2016-08-01 Thread Quincey Morris
On Aug 1, 2016, at 22:11 , Trygve Inda  wrote:
> 
> Is this a bad idea?

No, it’s harmless. It’s possible that the compiler will report it as a 
property, but remember that it’s Obj-C and there were no syntactic properties 
until a mere 9 years ago. For backward compatibility with code back to the 
1980s, the compiler isn’t allowed do anything magical with methods you define.

> How is the best way to name something like this?

I’d avoid making it look like a setter, otherwise you risk confusing future 
human readers of your code. You could maybe call it “limitConcurrencyTo:”.

Alternatively, just make it a property “maximumOperations” or (better, I think) 
“maximumOperationCount”. The operation queue value is, after all, itself a 
property, so writing a getter is trivial. You can even call it 
“maxConcurrentOperationCount” to match the operation queue, since Apple has 
already gone to the trouble of devising, debating, focus-grouping and 
end-user-testing the best possible property name already (hasn’t it?).


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Method name starts with "set"

2016-08-01 Thread Trygve Inda
I have a class where I would like to have a method name like:

-(void)setMaximumOperations:(NSInteger)operations
{
  [[self operationQueue] setMaxConcurrentOperationCount:operations];

   ... Do other stuff ...
}

Is this a bad idea? There is no property called "maximumOperations" in my
class but using a "set" method name in this way may imply there is, although
the compiler likely doesn't care.

How is the best way to name something like this?




___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com