行き止まりになったとき、私は自分のこの新しいアプリをリリースするのが本当に近いと思っていました。私のコードは、シミュレータ (Xcode 4.0.2) ではメモリ リークなしで動作しますが、デバイスでメモリ リークが報告されます。
私の問題は、オブジェクトをコピーすることに関連していると思います。これは、トラブルシューティングの試みでコピーなしで試したところ、メモリ リークがなくなったためです (もちろん、機能もそうです!)。
私がしていることは、UIView のサブクラスのインスタンスを配列に追加することです。このサブクラス (cityToAdd がインスタンスである都市) には、後の段階でアクセスする必要がある 2 つの UIView といくつかの変数があります。
これを行うと、デバイスでメモリ リークが発生します。
[arrayOfCities addObject:[[cityToAdd mutableCopy] autorelease]];
しかし、私がこれを行うと、私はしません (ただし、機能が失われます)
[arrayOfCities addObject:cityToAdd];
サブクラスでは、コピーを処理するためにこれを持っています:
- (id)mutableCopyWithZone:(NSZone *)zone{
Cities *newCity = [[Cities allocWithZone:zone] init];
[newCity initWithCityName:cityName
onRing:ring
withTimeZone:timeZone
withTimeZoneOffset:timeZoneOffset
withDSTAngle:DSTAngle
andDST:isDST];
return newCity;
}
Instruments から、デバイスでテストするときにこれを取得します。
2 行目をドリルダウンすると、次のように表示されます。
最後に私のinitWithCityNameメソッド(こんなに長い投稿でごめんなさい!!)Instrumentsから色とメッセージを取得するための画像としてそれを入れました...
最後に、UIIMage imageNamedUniversal は、iPad で @2x 画像を提供するための拡張機能です (ただし、通常の imageNamed で試したところ、同じメモリ リークが発生しました)。
どこから始めればいいのかわからない!! どんなアイデアでも大歓迎です。
ありがとう