zu entfernen, das tue ich -iOS - nicht in der Lage Speicher
tags = [myTagMgr getMyTags];
In meiner getMyTags Methode, mache ich die folgenden -
NSMutableDictionary *myTags = [NSMutableDictionary new];
....
return myTags;
ich ein Speicherleck für meineTags in dieser Methode. Wo sollte ich die Erinnerung freigeben? "Tags" ist eine Eigenschaft, die in der gesamten TaggingScreen-Klasse verwendet wird. Wenn ich also eine Autorelease mache, bekomme ich eine Ausnahme, die besagt, dass eine Nachricht an eine freigegebene Instanz gesendet wird, wenn ich versuche, auf Tags in anderen Methoden der Klasse zuzugreifen.
EDIT:
- (NSMutableDictionary *)getMyTags
{
NSMutableDictionary *myTags=[NSMutableDictionary new];
NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init]autorelease];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Tag"
inManagedObjectContext:localObjectContext];
[fetchRequest setEntity:entity];
NSError *error = nil;
NSArray *fetchedArrayObjects = [localObjectContext executeFetchRequest:fetchRequest error:&error];
if (fetchedArrayObjects ==nil) {
return nil;
}
if ([fetchedArrayObjects count]==0) {
return nil;
}
Tag *aMessage;
for (int i=0; i<[fetchedArrayObjects count];i++)
{
aMessage= (Tag *)[fetchedArrayObjects objectAtIndex:(NSUInteger)i];
[myTags setValue:[aMessage isSet] forKey:[aMessage tagName]];
}
return myTags;
}
Welche Art von '@ Eigenschaft' ist 'Tags' ?? – yuji
seine a @property (nicht atomare, zuweisen) NSMutableDictionary * -Tags; – Suchi