交易是这样的:我的故事板中有 25 个视图控制器,每个都有一个 UIImageView,它显示一个大文件大小的 PNG。
事实证明,笔尖内的 UIImageView 将使用[UIImageView initWithImage:[UIImage imageNamed:]]
方法加载他们的图像(参见文档)。使用的问题imageNamed:
是,当加载每个视图控制器时,其 UIImageView 中的图像被放置在缓存中,我的应用程序很快开始收到内存警告和崩溃。
出路是使用[UIImageView initWithImage:[UIImage imageWithContentsOfFile:]]
,它加载图像但不缓存它。所以我想做的是在我的 NIB 文件中使用UIImageView 的一个子类,它调用imageWithContentsOfFile
. 但我不知道如何获取在 Interface Builder 的 Attributes Inspector 中设置的图像文件的名称。
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
?