我无法更改值或更改声明的任何变量或对象。任何人都可以看到什么是错的吗?
在我的app delegate方法中。
- (void)applicationDidEnterBackground:(UIApplication *)application
{
MainPage *mp = [[MainPage alloc]init];
mp.newTime = [[NSDate date] timeIntervalSinceDate:mp.date];
[mp.timer invalidate];
mp.switchT = 1;
mp.playBarButton.enabled = YES;
mp.pauseBarButton.enabled = NO;
mp.stopBarButton.enabled = YES;
[mp.avPlayer pause];
}
以上任何操作均未执行。在我的mainpage.h
文件中,我按照以下方式声明:
@property (nonatomic, retain) AVAudioPlayer *avPlayer;
@property (strong, retain) NSTimer *timer;
@property (strong, retain) NSDate *date;
@property (nonatomic) NSTimeInterval newTime;
@property (nonatomic) NSInteger switchT;
@property (strong, nonatomic) IBOutlet UIBarButtonItem *playBarButton;
@property (strong, nonatomic) IBOutlet UIBarButtonItem *pauseBarButton;
@property (strong, nonatomic) IBOutlet UIBarButtonItem *stopBarButton;
当然,在我的实现文件中,这些是合成的,并且所有内容都适用于mainpage.m
中的代码,而不是我的appDelegate文件中的代码。有谁能看到这个问题?请注意,这是一个功能齐全的应用程序一切正常,只是无法在我的applicationDidEnterBackground方法中执行以下代码,我假设它是我的属性的方式?我的代码写在app delegate中也没有错误。
答案 0 :(得分:2)
此MainPage *mp = [[MainPage alloc]init];
创建新 MainPage
对象。更改一个对象中的值不会影响不同MainPage
对象的显示。
让您的应用委托对您实际显示的对象进行委托,或者在MainPage
内为后台通知设置处理程序,以便它可以自行完成工作。
答案 1 :(得分:2)
NSNotificationCenter defaultCenter] addObserver:self selector:@selector(goBackground) name:UIApplicationDidEnterBackgroundNotification object:nil]; // and later
- (void) goBackground { [timer invalidate], timer = nil; }