This entry was posted on Viernes, Agosto 27th, 2010 at 12:47 and is filed under Todo/All, nederlands. You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.


[fout] memory leak
![]() | ![]() | ![]() |
Als je een “Build and Analyze” uitvoert, levert xCode de mogelijke memory leaks die zich kunnen voordoen.
Echter zijn er omstandigheden waarbij je een variabele creëert en die wel wil behouden, bijvoorbeeld om door te geven als parameter.
vb.
- (NSMutableArray *)haalAlleGeordendeAfspraken{
NSFetchRequest *vraag = [[NSFetchRequest alloc] init] ;
NSEntityDescription *entiteit = [NSEntityDescription entityForName:@"Afspraak" inManagedObjectContext:[self managedObjectContext]];
[vraag setEntity:entiteit];
[vraag setReturnsObjectsAsFaults:NO]; // toegevoegd om foutmeldingen te mijden
NSSortDescriptor *sorteerbeschrijving = [[NSSortDescriptor alloc] initWithKey:@"afspraakBegintijd" ascending:YES] ;
NSArray *sorteerbeschrijvers = [[NSArray alloc] initWithObjects:sorteerbeschrijving,nil] ;
[vraag setSortDescriptors:sorteerbeschrijvers];
NSError *error =nil;
NSMutableArray *result = [[[self managedObjectContext] executeFetchRequest:vraag error:&error] mutableCopy];// autorelease];
[vraag release];
[sorteerbeschrijving release];
[sorteerbeschrijvers release];
// [entiteit release];
return result;
}
In dat geval wil je “result” teruggeven, maar je kan het dus niet autoreleasen, noch een release plaatsen.
Hier komt dan de naamgevingconventie wel de oplossing bieden:
You take ownership of an object if you create it using a method whose name begins with “alloc” or “new” or contains “copy” (for example, alloc, newObject, or mutableCopy), or if you send it a retain message. You are responsible for relinquishing ownership of objects you own using release or autorelease. Any other time you receive an object, you must not release it.
dus, je kan dit eenvoudig oplossen door ‘haalAlleGeordendeAfspraken' te vervangen door 'copyAlleGeordendeAfspraken'
ref : deze blog
Leave a Reply







