• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
NSView subviews mutability - follow up to NSDictionary mutability test thread
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NSView subviews mutability - follow up to NSDictionary mutability test thread


  • Subject: NSView subviews mutability - follow up to NSDictionary mutability test thread
  • From: "email@hidden" <email@hidden>
  • Date: Wed, 10 Dec 2008 16:56:51 +0000

A follow up of sorts to Cocoabuilder - (email@hidden) NSDictionary mutability test


from Cocoabuilder - (Bill Bumgarner) Re: NSDictionary mutability test

Performance

An NSMutableDictionary instance can be returned from a method declared
as returning (NSDictionary*) without risk that the client is going to
go and change the contents behind your back. If "test for mutability"
were common, then all kinds of methods across the 'kits would have to -
copy the return value and, potentially, deeply.


also:Cocoabuilder - (Andy Lee) Re: NSDictionary mutability test

Yup.  I just did a quick test using -[NSView subviews].  The return
type is NSArray*, but if you send -addSubview: to the view, the size
of the previously returned array grows by 1.

I would never assume a returned array is immutable just because the
declared return type of a method is NSArray*.


NSView advertising itself as returning an NSArray* but actually returning a mutable class does have its sneaky consequences.

[[NSView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];

this fails with one of dear our old friends: Collection <NSCFArray: 0x128d4e0> was mutated while being enumerated.

we need:

NSArray *subviews = [[NSView subviews] copy];
[subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];

Jonathan Mitchell

Central Conscious Unit
http://www.mugginsoft.com




_______________________________________________

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


  • Prev by Date: Date Formatter year input without year display
  • Next by Date: NSOutlineView problem with Text cells.
  • Previous by thread: Re: Date Formatter year input without year display
  • Next by thread: NSOutlineView problem with Text cells.
  • Index(es):
    • Date
    • Thread