2

アプリには、複数のビューで再利用するアイコンがいくつかあります (お気に入りのアイコンなど)。

メモリを節約するために、静的な画像をロードするクラス メソッドを持つクラスを使用するのが良い考えかどうか疑問に思っていましたか?

例えば ​​:

+ (UIImage *)favoriteIcon {
    static UIImage * icon;
    if (!icon)
        icon = [UIImage imageNamed:@"favorite.png"];
    return icon;
}

それとも、+ (UIImage *) imageNamed:(NSString *)name必要なときにいつでも使用する必要がありますか?

アドバイスありがとうございます。

4

1 に答える 1

6

[UIImage imageNamed:]すでに内部でこのようなことを行っています。実際、メモリが少なくてすぐには必要ないときに画像をダンプするなどのことも行っているため、よりスマートです。一方、favoriteIconメソッドは画像を永久にロードしたままにします。

一般に、アプリをビルドしてプロファイリングし、どのように/どこで改善が必要かを確認するまで、このような最適化を行うことは避けたほうがよいでしょう。そうしないと、時間を無駄にしたり、事態を悪化させたりすることさえあります。Instruments を使用してアプリをプロファイリングする方法を学ぶことをお勧めします。これは少し複雑ですが、コツをつかめばとても楽しいものです。

于 2013-06-20T15:54:24.397 に答える