iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   Crash bij scrollen - pull to refresh (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/97891-crash-scrollen-pull-to-refresh.html)

lightlancer 22-08-11 23:39

Crash bij scrollen - pull to refresh
 
Hallo,

Ik maak gebruik van EGOPulltorefresh, Het werkt prachtig, alleen hij crashed wanneer ik scroll terwijl hij aan het herladen is. Ik heb geen idee waarom hij dat doet.

error:
Code:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds for empty array'
Zolang ik niet scroll gaat het goed en herlaad de tableview perfect.

Lijkt erop dat de tableview de array gebruikt terwijl hij aan het herladen is, omdat hij aan het laden is, zou hij leeg kunnen zijn?!
Misschien zit ik er naast,

iemand enige idee die me hier kan helpen?

DJ14 23-08-11 09:24

De structuur van dingen die je uitvoert tijdens het herladen is belangrijk. Haal als eerst de nieuwe data binnen, stop deze in een tijdelijke array en voeg deze array dan in je datasource array. Roep pas helemaal aan het einde, nadat je datasource array weer gevuld is, [self.tableView reloadData] aan, en zorg dat je bij numberOfRowsInSection de count van je data array returnt. Dan kan er weinig mis gaan, omdat de tableView tijdens het herladen gewoon nog de oude data gebruikt, en pas na [self.tableView reloadData] worden de tableView delegate methods opnieuw aangeroepen waardoor de nieuwe data zichtbaar wordt.

lightlancer 23-08-11 09:42

Ok Thanks, ik ga het even nalopen. Ik snap alleen nog steeds niet waarom het blijft werken wanneer ik de pull-to-refresh maar een klein stukje naar beneden haal en hij pas crasht als ik hem geheel naar beneden schuif......

lightlancer 23-08-11 22:36

Geen idee hoe het heeft kunnen gebeuren, maar het bleek dat ik 2 dezelfde (maar met andere naam) arrays gebruikte. Ik heb de gehele code naar 1 array gezet en de andere eruit gehaald en het probleem komt niet meer voor :-)

Ik heb elke stap doorgenomen en kwam erachter dat ik per ongeluk een array in een array gezet had, totaal niet nodig aangezien het om precies dezelfde data ging. Ik zal wel vermoeid zijn geweest op dat moment.


Alle tijden zijn GMT +2. Het is nu 04:39.