Re: Mutable Convenience Methods
Re: Mutable Convenience Methods
- Subject: Re: Mutable Convenience Methods
- From: Ben Lachman <email@hidden>
- Date: Wed, 20 Feb 2008 15:29:17 -0500
On Feb 20, 2008, at 11:56 AM, j o a r wrote:
On Feb 20, 2008, at 5:20 PM, Jonathon Mah wrote:
I think mutable subclasses should override the convenience methods
of their superclass to return a mutable version. For example,
[NSMutableArray array] and [NSMutableString string] both return
mutable versions, but [NSMutableParagraphStyle
defaultParagraphStyle] does not. Is this considered a bug in
NSMutableParagraphStyle?
The big difference between the API:s that you quote above is that
NSMutableArray and NSMutableString returns new instances, while
NSParagraphStyle returns a singleton, shared, instance. For this
reason, I don't think that this could be considered a bug, or that
it would make sense to have a similar method in
NSMutableParagraphStyle.
While I agree that this isn't a bug, I do think it would be worth
while to have a mutable version or replacement convenience method.
In general there are a few places where cocoa is really lacking in
convenience methods and this is one of them*. I call
[[[NSParagraphStyle defaultParagraphStyle] mutableCopy] autorelease]
so often that I have mutableDefaultParagraphStyle defined in one of
my default categories. It just trips one up to have
NSMutableParagraphStyle return a NSParagraphStyle. I doubt (m)any
people rely on it being the actual singleton object that is returned,
particularly if they're calling it from NSMutableParagraphStyle
instead of just NSParagraphStyle.
->Ben
*others being creation of sort descriptors, attributed string and
predicates
--
Ben Lachman
Acacia Tree Software
http://acaciatreesoftware.com
email@hidden
740.590.0009
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden