iPhone contact app discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Citaat: Oorspronkelijk geplaatst door Wesleyyyy Haha, maar hoe heb jij het gedaan code zoeken of tutorials gevolgd misschien iets anders? Oke, zal me ff voorstellen. ...
|
Registreer | FAQ | Ledenlijst | Kalender | Berichten van vandaag | Zoeken |
#21
|
|||
|
|||
Citaat:
Ik hoop dat je hier iets aan hebt, succes met je app verder. |
Gesponsorde links | |
|
|
|
#22
|
|||
|
|||
Wesleyyyy, je geeft al aan dat je niet helemaal snapt waar je mee bezig bent. Je moet eerst nadenken over de structuur waar je de data in op wilt slaan. De manier waarop je dit vervolgens programmeert is weer afhankelijk van je data. Is dit een vaste set dan kan je gemakkelijk een paar arrays en dictionaries initialiseren zoals jij geprobeert hebt. Wanneer je niet precies zeker bent van je data zul je e.e.a. dynamisch met "for loops" tijdens runtime in de bedachte structuur plaatsen. Dit laatste is hoe de meeste ervaren programmeurs dit varkentje zullen wassen.
Ik ga er maar even vanuit dat je een vaste set data hebt, dan heb je misschien wat aan onderstaand voorbeeld: Code:
// Stel we hebben een aantal namen beginnend met verschillende letters. // Ad, Adrie, Bart, Cornelis, Peter, Pieter, Harry, Henk en Wesley. // De namen beginnen met verschillende letters en daar willen we de tabel // omheen bouwen, op deze manier is het ook makkelijk om er later een // index aan toe te voegen // Per letter hebben we een array nodig NSArray *arrayA = [NSArray arrayWithObjects:@"Ad", @"Adrie", nil]; NSArray *arrayB = [NSArray arrayWithObject:@"Bart"]; NSArray *arrayC = [NSArray arrayWithObject:@"Cornelis"]; NSArray *arrayP = [NSArray arrayWithObjects:@"Peter", @"Pieter", nil]; NSArray *arrayH = [NSArray arrayWithObjects:@"Harry", @"Henk", nil]; NSArray *arrayW = [NSArray arrayWithObject:@"Wesley"]; // Nu plaatsen we deze arrays in één array om later in te voegen in de dictionary NSArray *verzamelArray = [NSArray arrayWithObjects:arrayA, arrayB, arrayC, arrayP, arrayH, arrayW, nil]; // We hebben ook een array met de keys nodig (de eerste letters) NSArray *keys = [NSArray arrayWithObjects:@"A", @"B", @"C", @"P", @"H", @"W", nil]; // Nu plaatsen we deze arrays in een dictionary, onder de betreffende keys, de retain is nodig in dit geval omdat je dit object waarschijnlijk wilt bewaren en niet wilt dat het ge-auto-released wordt NSDictionary *dictionary = [[NSDictionary dictionaryWithObjects:verzamelArray forKeys:keys] retain]; Code:
NSArray *arrayForKeyA = [dictionary objectForKey:@"A"]; De keys komen overeen met het aantal secties wat je nodig hebt en het aantal objecten in een array voor een key bepaalt hoeveel rijen je nodig hebt in die sectie. Misshien ben je zo toch weer een stukje op weg geholpen... |
#23
|
|||
|
|||
De meest ervaren programmeeurs zetten deze structuur in een .plist file en hebben dit (moeilijk onderhoudbare) stuk code niet nodig.
__________________
Leon [iPhone- en Java ontwikkelaar] |
#24
|
|||
|
|||
|
#25
|
|||
|
|||
Alleen als je de code niet hoeft te wijzigen als je NSDictionary wijzigt (wat meestal niet het geval is) dan is een database wel handig.
In alle andere gevallen vind ik het niet zo veel toevoegen. |
#26
|
|||
|
|||
Citaat:
De oplossing met de plist had ik ook aan gedacht maar voor een beginnende programmeur zoals wesleyyyy leek het me beter om mijn uitleg te snappen, dan hem een plist te laten maken en dan met één statement dit in te lezen en dat hij nog niet snapt wat hij gemaakt heeft. Ik denk dat hij niet zoveel heeft aan jouw commentaar zonder uitleg erbij, dus "be my guest"... |
#27
|
|||
|
|||
Goed lezen?
|
#28
|
|||
|
|||
|
#29
|
|||
|
|||
@JornZ,
ik heb jouw code gebruikt maar nu krijg ik een "sigabrt" error. Citaat:
|
#30
|
|||
|
|||
verzamelArray moet wel een property zijn in dit geval van de rootViewController, dus declaren in rootViewController.h en zul je moeten retainen. Je hebt dan wel de setter en getter methods nodig voor verzamelArray en die krijg je gemakkelijk via een @synthesize verzamelArray; onder de implementation van rootViewController in rootViewController.m. Heb je dit zo gedefinieerd?
Zo niet dan moet je bovenstaande sowieso in orde maken, wil je verzamelArray buiten de viewDidLoad method kunnen benaderen (vanwege de scope). Ik zou het alleen anders aanpakken, ik zou niet van verzamelArray maar van de dictionary een property maken en Code:
NSArray *keys = [NSArray arrayWithObjects:@"A", @"B", @"C", @"P", @"H", @"W", nil]; NSDictionary *dictionary = [[NSDictionary dictionaryWithObjects:verzamelArray forKeys:keys] retain]; Code:
return [dictionary allKeys]; Ik raad je aan om toch eens wat literatuur door te nemen en niet alleen stukjes code van internet te halen zonder de achtergrond te kennen en de context waarin het nuttig is. Boek: http://www.apress.com/9781430230243 iBook PDF:http://developer.apple.com/library/m...tiveC/ObjC.pdf Laatst gewijzigd door JornZ; 05-07-11 om 13:13. |
#31
|
|||
|
|||
Zou je a.u.b. meer met code willen laten zien? Ik heb het snel nodig en ik snap niet helemaal wat je bedoelt. Als ik hiermee klaar ben ga ik eerst een boek lezen ..
|
Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten) |
|
Soortgelijke discussies |
||||
Discussie | Auteur | Forum | Reacties | Laatste bericht |
Contact-app verdwenen | Jovano | iPhone Apps | 1 | 03-04-11 22:16 |
Contact Images met Google Contact Sync | cloverfield | iTunes | 1 | 30-08-09 22:56 |
iPhone needs repairing , contact apple ????? | jaimiefanatic | Unlock [archief] | 45 | 29-03-08 07:43 |
|
|