我正在开发一个文件管理应用,有时在调用UIImagePickerController
或MPMediaPickerController
时会出现以下错误:
*** -[_UIImageViewPretiledImageCacheKey hash]: message sent to deallocated instance 0x140dc0
我最近使用iOS 5的UIAppearance API为我的应用程序提供了自定义主题,然后我开始遇到这个错误。通过猜测和检查,我找到了导致此错误的代码行:
UIImage *backButtonImage = [[UIImage imageNamed:@"backButton.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(12, 16, 12, 8)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
UIImage *barButtonImage = [[UIImage imageNamed:@"barButton.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(14, 12, 14, 12)];
[[UIBarButtonItem appearance] setBackgroundImage:barButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
我不知道这段代码是如何引发以上错误的。你能否解释一下这个错误的来源并提供解决方案呢?
非常感谢您的帮助, Guvvy