• 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
Dodgy Code - Low Level Memory Management Question!
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Dodgy Code - Low Level Memory Management Question!


  • Subject: Dodgy Code - Low Level Memory Management Question!
  • From: Dave <email@hidden>
  • Date: Mon, 25 Jan 2016 18:48:48 +0000

Hi All,

This is a bit dodgy so bear with me.

I have a class that is a subclass of a third party framework. This is hard to explain, but I’m trying to make it into a singleton of kinds. When the framework wants an object of this particular class it alloc/init’s a new one. This calls the designated initializer. I have overridden this initializer and want to pass back a version of the object that has already been allocated and has a retainCount of at least +1. I know that when the object is returned to the caller inside the framework it is going to be autoreleased. In my override I do this:

-(instancetype) initWithID:(NSString*) something
{
NSString*		myID;
id				myNewObject;
id				myCachedObject;

myNewObject = [super initWithSomething: something];
if (myNewObject == nil)
	return nil;

myID = [self getID];

myCachedObject = [LTWCacheManager getObjectForID: myID];
if ( myCachedObject == nil);
	{
	self = myNewObject;
	[LTWCacheManager addToCache: myID];
	return self;
	}

[myNewObject release];
[myCachedObject retain];				//Added this Badness but it makes no difference.

self = myCachedObject;
return self;
}

Now when the (one) Cached object is (finally) released it crashes……. It gets autoreleased after this method returns. Other then crashing when it is dealloc’ed, it seems to work ok.

I know the above is dodgy but its a work around and I’m wondering if I can do something like this as an interim fix to get my past a hurdle?

Thanks in Advance,
All the Best
Dave

PS

Don’t worry, I’ve sacrificed the correct number of chickens to be protected from the curse of this hack! lol


_______________________________________________

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


  • Follow-Ups:
    • Re: Dodgy Code - Low Level Memory Management Question!
      • From: Quincey Morris <email@hidden>
    • Re: Dodgy Code - Low Level Memory Management Question!
      • From: Jens Alfke <email@hidden>
  • Prev by Date: Re: The PID of an Application?
  • Next by Date: Re: Removing Observers eats up memory
  • Previous by thread: Fwd: Stubborn link error - can't find a framework.
  • Next by thread: Re: Dodgy Code - Low Level Memory Management Question!
  • Index(es):
    • Date
    • Thread