最後の2日間はメモリリークを捜すのに費やした。私はドキュメントを読んで、インターネットで良い情報を探しました(Owen Goss「iOSアプリケーションでメモリリークを見つけて修正する」など)。しかし、私は解決するにはあまりにも多くの謎を持っています。すべてのallocが解放されてもメモリリークが発生する
たとえば、このコードがInstrumentsで何度も点灯します。私は最善を尽くしましたが、修正できませんでした。
- (void) updateUserDefaults
{
// alloc temporary Array for object´s positions
NSMutableArray *tArray = [[NSMutableArray alloc] init];
// store locations of objects
for (int i=0; i<[originalOrigins count]; ++i) {
CGPoint foo = [self.view viewWithTag:100+i].center;
NSString *moo = NSStringFromCGPoint(foo);
[tArray addObject:moo];
[moo release]; //?
}
// retrieve all stored positions for all objects
NSMutableArray *zettelPannedOrigins = [[[[NSUserDefaults standardUserDefaults] objectForKey:@"zettelPannedOrigins"] mutableCopy] retain];
// replace with objects from this level
[zettelPannedOrigins replaceObjectAtIndex:zettelAtIndexInTonebank withObject:tArray];
// save
[[NSUserDefaults standardUserDefaults] setObject:zettelPannedOrigins forKey:@"zettelPannedOrigins"];
[[NSUserDefaults standardUserDefaults] synchronize];
// clean up memory
[tArray release];
[zettelPannedOrigins release]; //?
}
私が他の人にとって興味深いと思うのは、私が割り当てたものをリリースするということです。しかしまだそれは漏れている。これは私がドキュメンテーションで答えることはできません。または私はできますか?
を行う必要があります。 –