2009-03-27 12 views
5

jako test, robię co następuje jako pierwsza linia w applicationDidFinishLaunching:NSArray initWithObjects: nie załadunek

NSArray *list=[[NSArray alloc] initWithObjects:@"Andy",@"Erik",@"Aaron",nil]; 

Po linia biegnie, mam zerowe obiektów w tablicy. Robię to dalej w ścieżce kodu, ale chciałem wyeliminować wpływ, aby upewnić się, że moja składnia jest poprawna. Otrzymuję takie same wyniki z NSMutableArray. W debugerze zajmuję się nazwą tablicy, aby sprawdzić, czy ma ona jakieś wartości.

Kiedy myszkę liczyć w kolejnym wierszu, widzę „varaible zoptymalizowany Awa ... Podsumowanie”:

int count = [list count]; 

jakieś sugestie dlaczego tablica nie wypełnia i dlaczego licznik nie daje z powrotem Liczba całkowita?

Odpowiedz

6

Co się dzieje, to że nie używasz zmiennej 'count', a kompilator ją optymalizuje.

1) Spróbuj uruchomić w trybie debugowania zamiast w trybie zwolnienia. Tryb debugowania nie zoptymalizuje rzeczy, więc powinieneś zobaczyć, jak zmienna count daje prawidłowy wynik, po czym myszką w debugerze. Możesz zmienić aktywną konfigurację na debugowanie z wydania, klikając pasek rozwijany w lewym górnym rogu xcode.

2) Użyj zmiennej "count" w kodzie. Zwróć uwagę, że w wersji release rzeczy mogą się nie udać, jeśli tego właśnie chce kompilator. Na przykład, jeśli masz gdzieś swoje stwierdzenie inicjalizacji licznika, a używasz "count" w dalszej części kodu, "count" może nie zostać ustawione wcześniej, gdzie faktycznie jest używane "count".

+0

Dzięki. Przypadkowo był w trybie dystrybucji dla ad hoc. Dziwne, jak to skacze. – 4thSpace