2013-10-07 13 views
6

Nadal utknąłem na ten problem, nawet po całej odpowiedzi z tego forum. Czy ktoś może mi powiedzieć, co robić w prosty sposób? Jestem nowym uczniem w xcode. Mam włączony obiekt zombie.Wątek 1: EXC_BAD_ACCESS (Kod = 1, adres = 0x30000008)

to mój kodowania, który dostał awarii

if ([[[AryStoreknowItem objectAtIndex:indexPath.row] objectForKey:@"action"] isEqualToString:@"a1"]) { 

    NSString *t1 =[[AryStoreknowItem objectAtIndex:indexPath.row] objectForKey:@"title"]; 

    NSString *a1 = [[AryStoreknowItem objectAtIndex:indexPath.row] objectForKey:@"action"]; 

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

    // saving an NSString 
     [defaults setObject:a1 forKey:@"a1"]; 
     [defaults setObject:t1 forKey:@"t1"]; 

    JournalPage *journal=[[JournalPage alloc]initWithNibName:@"JournalPage" bundle:nil]; 

    [self presentModalViewController:journal animated:YES]; 

w mojej aplikacji, mam wiele ViewController. kiedy kliknę przycisk "Wstecz UINavigationBar", generowany ten rodzaj problemu, nie mogę wyjaśnić mojego problemu, ponieważ wszystkie funkcje działają prawidłowo.

Przykład: -

1 - fitstVController (praca odpowiednio)

=> mieć UITableView, po kliknięciu w określonym rzędzie to będzie dalej innej UIViewController (SecoundViewController)

2 - SecoundViewController (działa poprawnie)

=> ma UITableView i UIActionSheet. kiedy wybrać przycisk UiActionSheet potem drugi UIViewController (ThirdViewController) jest otwarty

3 - ThirdViewController (nie można otworzyć)

=> błąd przyszedł po kliknięciu na wiersz trzy. to samo, jeśli kliknę na inną komórkę, trzecia komórka, którą kliknę, ulegnie awarii, zanim przejdzie na inne strony

+0

Włączono ARC? jakiejkolwiek innej wiadomości z konsoli? która linia powoduje problem? –

+1

Mówisz, że ulega awarii po powrocie do poprzedniego kontrolera widoku. Czy możesz pokazać nam ten kod?Udostępniłeś kod, aby przejść do następnego kontrolera, ale nie pokazałeś nam kodu, który uruchamiasz, kiedy _return_ z tego kontrolera. – Rob

+0

w pierwszym wierszu "if (...)" ma problem .. ARC jest wyłączone. Jeśli mogę włączyć, otrzymałem wiele błędów .. wiadomość z konsoli: - [CFArray objectAtIndex:]: wiadomość wysłana do zwolnionej instancji 0x1e5af140 thanx for ur próbuję pomóc – user2767343

Odpowiedz

10

Nie sądzę, że mamy wystarczająco dużo, aby zdiagnozować jakikolwiek konkretny problem (i trudno jest to twój opis). Niemniej jednak, polecam:

  1. Proponuję prowadzenie kodu przez analizator statycznych („Analyze” w menu Xcode „Produkt”) i upewniając się, że nie zawiera żadnych ostrzeżeń. Pozwoli to (między innymi) zidentyfikować wiele rutynowych problemów z pamięcią, które mogą łatwo nękać kod niezgodny z ARC. Nie ma sensu iść dalej, dopóki nie otrzymasz czystego rachunku zdrowotnego.

  2. Proponuję włączyć Exception Breakpoint i sprawdzić, czy to oznacza konkretną linię kodu będącą źródłem problemu. Czasami może to zidentyfikować linię kodu bez konieczności inżynierii wstecznej, gdzie wystąpił błąd, patrząc na ślad stosu.

  3. Biorąc pod uwagę, że robisz kod nie-ARC, możesz również chcieć tymczasowo włączyć zombie. Możesz zobaczyć to ustawienie ustawień Scheme Configuration.

  4. Poza tym, chciałbym odesłać Cię do artykułu Ray Wenderlicha My App Crashed, Now What?.

Jeśli nadal masz błędy, udostępnij nam ślad stosu.

+0

thanx @ Rob..i uruchomił analizator statyczny i wyszedł 36 problem. Postaram się rozwiązać ten problem i wygląda na to, że artykuł jest świetny i związany z tym problemem. Doceniam twoją pomoc i informuję, czy ten problem się rozwiązuje. – user2767343

2

Możliwe, że zwolniono kontrolkę ViewController, gdy obiekt nadal uzyskuje do niej dostęp. To był mój problem i zrozumienie odpowiedzi Roba pomogło.

Powiązane problemy