• 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
Re: It doesn't work without the NSLog()... Why?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: It doesn't work without the NSLog()... Why?


  • Subject: Re: It doesn't work without the NSLog()... Why?
  • From: Graham Cox <email@hidden>
  • Date: Wed, 29 Apr 2009 23:03:34 +1000


On 29/04/2009, at 10:48 PM, Тимофей Даньшин wrote:

Why copy mutableRet when you just release it anyway? Instead, just return it with an autorelease:
I do that because i return an immutable array. I always try to return the types i promise to return in the declaration :)



Even so, you're leaking the copy because it should be returned autoreleased, as per correct memory management rules. The fact that you're not doing this here suggests that memory management may be flaky elsewhere, as Kyle suggested.

However, returning the mutable array when your method promises a non- mutable array is perfectly OK. NSMutableArray is an NSArray and therefore the method has fulfilled its contract. If the client code then tests its class and discovers that it is in fact mutable after all, and mutates it, then the client code is the bad guy here. All the copy does is waste time, and serves no purpose. Still, if it makes you feel better...



Note that:

- (NSArray *) selectWordsBeginningWith:(NSString *) s;

Does not include the word new, alloc, copy or mutableCopy and therefore the caller does not own the array returned.




--Graham


_______________________________________________

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


References: 
 >It doesn't work without the NSLog()... Why? (From: Тимофей Даньшин <email@hidden>)
 >Re: It doesn't work without the NSLog()... Why? (From: Graham Cox <email@hidden>)
 >Re: It doesn't work without the NSLog()... Why? (From: Тимофей Даньшин <email@hidden>)

  • Prev by Date: Re: It doesn't work without the NSLog()... Why?
  • Next by Date: Re: iphone SDK session duration
  • Previous by thread: Re: It doesn't work without the NSLog()... Why?
  • Next by thread: Re: It doesn't work without the NSLog()... Why?
  • Index(es):
    • Date
    • Thread