返回前台后的UIImage(iphone多任务)
当我通过home按钮将应用程序发送到后台时,我的应用程序出现问题。我将尝试简短但完整地描述它: 我在返回前台后的UIImage(iphone多任务),iphone,objective-c,cocoa-touch,ios4,Iphone,Objective C,Cocoa Touch,Ios4,当我通过home按钮将应用程序发送到后台时,我的应用程序出现问题。我将尝试简短但完整地描述它: 我在@interface中声明了一个UIImage指针,其属性如下: @property (nonatomic, retain) UIImage *pauseImg; 此指针设置为在viewDidLoad中声明的图像,如下所示: pauseImg = [UIImage imageNamed:@"MP_pause.png"]; 然后我使用以下方法,将图像用作按钮: - (void)playSong
@interface
中声明了一个UIImage指针,其属性如下:
@property (nonatomic, retain) UIImage *pauseImg;
此指针设置为在viewDidLoad
中声明的图像,如下所示:
pauseImg = [UIImage imageNamed:@"MP_pause.png"];
然后我使用以下方法,将图像用作按钮:
- (void)playSong:(NSString *)song {
if (![song isEqualToString:@"0"]) {
NSString *filePath = [[NSBundle mainBundle] pathForResource:song ofType:@"mp3"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:filePath];
self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:NULL];
audioPlayer.currentTime = songPosition;
[audioPlayer setDelegate:self];
[audioPlayer setVolume:0.8];
[audioPlayer play];
NSLog(@"pauseImage: %@", pauseImg);
[playButton setBackgroundImage:pauseImg forState:UIControlStateNormal];
[fileURL release];
}
}
除了当应用程序进入后台并返回前台时,这项工作没有问题。然后指针指向AvAudioPlayer对象,而不是图像,如上面插入的NSLog所示(第一行在进入背景之前,第二行在返回前景时,每次调用该方法):
我在苹果的任何文档中都看到,当进入后台时,图像缓存被清空。导致这种行为的原因是什么?为什么pauseImg会指向AvAudioPlayer对象?对这个问题有什么想法吗
提前感谢,,
尼科斯试试看
self.pauseImg = [UIImage imageNamed:@"MP_pause.png"];
而不是
pauseImg = [UIImage imageNamed:@"MP_pause.png"];
您必须使用访问器来保留pauseImg,否则它会自动删除。试试看
self.pauseImg = [UIImage imageNamed:@"MP_pause.png"];
而不是
pauseImg = [UIImage imageNamed:@"MP_pause.png"];
您必须使用访问器来保留pauseImg,否则它将自动删除。+1。还要注意,UIImage卸载和重新加载应该由iOS4自动处理。非常感谢,这解决了它+1.还要注意,UIImage卸载和重新加载应该由iOS4自动处理。非常感谢,这解决了它!