Ik ben bezig met een iOS applicatie geschreven in Objective C, gemaakt voor iPad en iPhone draaiend op iOS 7+.
Storyboard
In mijn Storyboard maak ik nu drie keer gebruik van dezelfde scene om gegevens te tonen.

Ik heb geprobeerd om hier één scene van te maken en alle drie de UINavigationControllers te koppelen aan deze enkele scene. Dit geeft de volgende fout:
"Cannot display a nested UINavigationController with zero viewControllers"
Ik snap niet helemaal waarom dit fout gaat, want de UINavigationControllers zijn niet aangepast en verwijzen alle drie alsnog naar dezelfde root view controller.
Ik wil dus zo min mogelijk gekopieerd en geplakte scenes hebben binnen mijn Storyboard. Hoe kan ik dit het beste bereiken? De oplossing moet ook werken met een UISplitViewController op de iPad.
Async afbeeldingen ophalen
Voor het ophalen van afbeeldingen heb ik het volgende stukje code geschreven:
Bij Android worden AsyncTasks altijd één voor één uitgevoerd, maar ik merk dat deze op iOS allemaal tegelijk worden uitgevoerd. Heeft Apple er zelf voor gezorgd dat threading verder goed verloopt en eventueel in groepjes indien het gebruikte toestel niet met 10 threads tegelijk plaatjes kan ophalen? Of moet ik hier zelf nog even naar kijken.
Verder vroeg ik mij af of ik zo dispatch_async op de juiste manier gebruik. In de background haal ik het plaatje op, sla ik hem op, en maak ik in core data een verwijzing. Vervolgens vraag ik toegang tot de main thread om het plaatje toe te voegen aan een UIScrollView.
Klopt dit zo of kan ik hier nog wat aan verbeteren?
Groeten,
JJ
Storyboard
In mijn Storyboard maak ik nu drie keer gebruik van dezelfde scene om gegevens te tonen.

Ik heb geprobeerd om hier één scene van te maken en alle drie de UINavigationControllers te koppelen aan deze enkele scene. Dit geeft de volgende fout:
"Cannot display a nested UINavigationController with zero viewControllers"
Ik snap niet helemaal waarom dit fout gaat, want de UINavigationControllers zijn niet aangepast en verwijzen alle drie alsnog naar dezelfde root view controller.
Ik wil dus zo min mogelijk gekopieerd en geplakte scenes hebben binnen mijn Storyboard. Hoe kan ik dit het beste bereiken? De oplossing moet ook werken met een UISplitViewController op de iPad.
Async afbeeldingen ophalen
Voor het ophalen van afbeeldingen heb ik het volgende stukje code geschreven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| // Foto ophalen dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ // Data omzetten naar UIImage NSData *imageData = [NSData dataWithContentsOfURL:imageURL]; UIImage *image = [UIImage imageWithData:imageData]; if(image != nil) { // Foto opslaan [self saveImage:image]; // Foto weergeven dispatch_async(dispatch_get_main_queue(), ^{ [self addImage:image]; }); } }); |
Bij Android worden AsyncTasks altijd één voor één uitgevoerd, maar ik merk dat deze op iOS allemaal tegelijk worden uitgevoerd. Heeft Apple er zelf voor gezorgd dat threading verder goed verloopt en eventueel in groepjes indien het gebruikte toestel niet met 10 threads tegelijk plaatjes kan ophalen? Of moet ik hier zelf nog even naar kijken.
Verder vroeg ik mij af of ik zo dispatch_async op de juiste manier gebruik. In de background haal ik het plaatje op, sla ik hem op, en maak ik in core data een verwijzing. Vervolgens vraag ik toegang tot de main thread om het plaatje toe te voegen aan een UIScrollView.
Klopt dit zo of kan ik hier nog wat aan verbeteren?
Groeten,
JJ