我一直在尋找答案,我什麼都沒有工作。NSTimer崩潰
我有一個的NSTimer爲AppDelegate中的一個屬性,這個的NSTimer應隨時解僱他的行動,即使該應用程序是在後臺(這是一個本地化的應用程序 - 因此它可以運行永遠)
這是代碼:
if(conectar){
self.myTimer = [[NSTimer scheduledTimerWithTimeInterval:10.0
target:self
selector:@selector(abrirPresencia)
userInfo:nil
repeats:NO]retain];
}
else{
self.myTimer = [[NSTimer scheduledTimerWithTimeInterval:10.0
target:self
selector:@selector(cerrarPresencia)
userInfo:nil
repeats:NO]retain];
}
10秒後應用程序崩潰,我有兩種方法斷點和它不停止,彷彿方法wasnt甚至呼籲,而不是射擊崩潰的方法。
這裏是方法:
-(void)cerrarPresencia{
NSLog(@"SOY EL TIMERRRRR!!!! %@");
//[[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground
if (YES){
[self.location stopUpdatingLocation];
[self disconnect];
}
else{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Ups!"
message:@"Según tu perfil querrías estar desconectado pero como lo estás usando hemos incluido este horario. Para cambiarlo sólo tienes que ir a editar perfil."
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView show];
[alertView release];
}
}
-(void)abrirPresencia{
NSLog(@"SOY EL TIMERRRRR!!!! %@");
if (YES){
[self.location stopUpdatingLocation];
[self disconnect];
}
else{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Ups!"
message:@"Según tu perfil querrías estar desconectado pero como lo estás usando hemos incluido este horario. Para cambiarlo sólo tienes que ir a editar perfil."
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView show];
[alertView release];
}
}
,並且屬性是:
任何想法?
你可以發佈這些方法嗎?崩潰日誌中有什麼錯誤? – Vladimir
如果您正在調用的方法有一個(或多個)參數,則應該在選擇器的末尾添加一個冒號:你可以做什麼@弗拉基米爾問和發佈的方法? – Warkst
很可能這是一個SIGABRT。嘗試在選擇器名稱中添加「:」。例如:(cerrarPresencia :) – Vin