2012-11-01 25 views
8

[alert show] satırında EXC_BAD_ACCESS alıyorum.UIAlertview kodundaki EXC_BAD_ACCESS = 1

Neden bunu alıyorum?

alert = [[UIAlertView alloc]initWithTitle:@"Application Alert" message:@"all date popup" delegate:self cancelButtonTitle:nil otherButtonTitles:@"Update",nil]; 

[alert show]; //EXC_BAD_ACCESS on this line 
+1

check-out burada verilen cevabım [http://stackoverflow.com/a/13084383/1538079] –

+1

sen diyorsun: 210 Bu kilitlenme iOS'ta bu kaza için 6. Çözüm olarak izleyin olmalı ana iplikten mi? –

+0

'uyarı' için prototip nedir? – AppleDelegate

cevap

6

Tam o uyarı temsilci yöntemini kullanmak zorunda olacak, temsilci nil yapmak

alert = [[UIAlertView alloc]initWithTitle:@"Application Alert" message:@"all date popup" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Update",nil]; 

[alert show]; 

Aşağıdaki temsilci kendini kullanıyorsanız gibi kendisine .code temsilci kendini geçerli değildir

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 

o zaman eğer çalışırsa EXC_Bad_Excess.let bana vermeyecektir .. !!!! mutlu kodlama ....

16

[alert performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:YES];

+3

'u çağırdığı iş parçacığı anlamına geliyordu. Bu, eğer arkadan gelen [uyarı gösterimi] 'ni çağırdığınız için sorun çıkarsa doğru çözümdür. – Hlung

+0

Çok teşekkür ederim! – alexmorhun