メモリリークなどの問題を既存のiPhoneアプリケーションで解決しようとしています。私はObjective Cを少し熟読していますが、プログラミングの基礎とiphoneアプリを開発する際に必要なメモリ管理の一般的な理解があります。私の質問は以下の方法についてです。iPhoneエラー、 '参照カウントされたオブジェクトはリリース後に使用エラーです';メモリリークのクリーンアップ
-(NSDate *)formatDate:(id)value{
NSLog(@"eja: DetailViewController/ formatDate()");
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.S"];
[dateFormatter release];
return [dateFormatter dateFromString:value];
}
それは読んでエラーを返して、「それはを解除された後参照さ-数えオブジェクトが使用です」。返される/使用される前に、dateFormatterが解放されていることがわかります。問題はもちろん、リターンステートメントの後にリリースを置くと、dateFormatterのvar宣言に関連する「オブジェクトの潜在的なリーク」エラーが発生することになります。
私はまた、 "自動解放"
return [[dateFormatter dateFromString:value] autorelease];
を試みたが、私は、エラー '送らオブジェクト - autoreleaseの回数が多すぎる' を取得します。
これを正しく記述して変数を適切に管理する方法についてのアドバイスはありますか?あなたがNSDateFormatter
をリリースする前に、あなたはNSDate
を作成することができます
はい、本当にそうです!非常に簡単です。どうもありがとうございます。 – djeddiej