2012-06-27 14 views
7

Zrobiłem milion UITables - z napisami, obrazami, tłem, kolorami, stylami tekstu - jak go nazwać. Nagle, mam awarię na tym stole, szczególnie na linii, która wzywa do obrazu komórki. Oto kod:UITableView obraz powoduje awarię

// Configure the cell: 
cell.textLabel.font = [UIFont fontWithName:@"Franklin Gothic Book" size:18]; 
cell.textLabel.text = [leadershipMenu objectAtIndex:indexPath.row]; 
cell.detailTextLabel.text = [leadershipSubtitlesMenu objectAtIndex:indexPath.row]; 

// And here's the statement that causes the crash: 
cell.imageView.image = [leadershipPhotosMenu objectAtIndex:indexPath.row]; 

Teraz błąd pojawia się to:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[__NSCFConstantString _isResizable]: unrecognized selector sent to instance 0xcacbc' 

wiem na pewno, że oświadczenie przyczyną awarii jest

cell.imageView.image = ... 

przyczyną tak szybko kiedy to komentuję, wszystko działa dobrze.

Nigdy w życiu widział błąd

-[__NSCFConstantString _isResizable]: 

. Mam googleed to, ale znalazłem bardzo mało na tym.

Bardzo osobliwy.

Ktoś tam ma jakieś wskazówki?

+0

Co to jest leadershipPhotosMenu? Czy to zbiór obrazów? – Vaquita

+0

Jak przechowywałeś obrazy w tablicy "leadershipPhotosMenu"? Czy mogę zobaczyć, co to jest? –

+0

oczywiście, oto kod: 'leadershipPhotosMenu = [[NSMutableArray alloc] initWithObjects: @" JohnQ.jpg ", @" BillZ.png ", nil];' A te obrazy są w moim projekcie - co oznacza, że ​​są w Xcode, część pakietu. – sirab333

Odpowiedz

12

jak wspomniano w komentarzu. sposób, w jaki zapisujesz swój obraz, jest przyczyną problemu.

spróbować ..

leadershipPhotosMenu = [[NSMutableArray alloc] initWithObjects:[UIImage imageNamed:@"JohnQ.jpg"], [UIImage imageNamed:@"BillZ.png"], nil]; 

powyższy kod będzie przechowywać obrazy w mutableArray, to będzie działać, ale proponuję, aby nie zapisywać obrazy w tablicy.

można również rozwiązać problem bez zapisywania obrazów w macierzy podobnego kodu powyżej wykonując:

wiadomość
cell.imageView.image = [UIImage imageNamed:(NSString*)[leadershipPhotosMenu objectAtIndex:indexPath.row]]; 

ten błąd oznacza Twój obiekt wewnątrz leadershipPhotosMenu nie jest obraz, ale ciąg

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[__NSCFConstantString _isResizable]: unrecognized selector sent to instance 0xcacbc' 
+0

Jezus - całkowite porażenie mózgowe. Oczywiście przez wiele godzin z rzędu wpatrywał się w ekran. Mam 40 tabel z obrazami w tym samym projekcie i nie widzę tego prostego błędu, który wpatruje się w moją twarz. Najwyraźniej czas, aby trafić w worek :-) Dzięki chłopaki! (i przepraszam) – sirab333

+0

jesteś bardzo mile widziany :) – janusbalatbat

1

Wykonaj:

cell.imageView.image = [UIImage imageNamed:[leadershipPhotosMenu objectAtIndex:indexPath.row]]; 
+0

Prawidłowo, jest to kolejna alternatywa, którą możesz wykonać. – Tarun

1

Przechowujesz nazwę obrazów, a nie obrazów. Jednak imageView ma UIImage jako swoją własność, a nie nazwę obrazu. Więc zmień poniżej.

cell.imageView.image = [UIImage imageNamed:[leadershipPhotosMenu objectAtIndex:indexPath.row]]; 
Powiązane problemy