取り引きは次のとおりです。ストーリーボードには25個のビューコントローラーがあり、それぞれに大きなファイルサイズのPNGを表示するUIImageViewがあります。
nib 内の UIImageView は、[UIImageView initWithImage:[UIImage imageNamed:]]
メソッドを使用してイメージをロードすることがわかりました (ドキュメントを参照)。使用に関する問題imageNamed:
は、各ビュー コントローラーが読み込まれると、その UIImageView 内の画像がキャッシュに配置され、アプリがすぐにメモリの警告を受けてクラッシュすることです。
[UIImageView initWithImage:[UIImage imageWithContentsOfFile:]]
解決策は、イメージをロードしますが、キャッシュしない を使用することです。だから私がやろうとしているのは、NIBファイルで、を呼び出すUIImageViewのサブクラスを使用することimageWithContentsOfFile
です。しかし、Interface Builder の属性インスペクターで設定されている画像ファイルの名前を取得する方法がわかりません。
UIImageViewNoCache.h
#import <UIKit/UIKit.h>
@interface UIImageViewNoCache : UIImageView
@end
UIImageViewNoCache.h
#import "UIImageViewNoCache.h"
@implementation UIImageViewNoCache
-(id)initWithImage:(UIImage *)image{
self = [super init];
if(self){
self.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] resourcePath], theNameOfTheImageInTheNib];]
}
}
@end
では、どうすれば入手できtheNameOfTheImageInTheNib
ますか?