//

iPhone contact app

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. ...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > Development > Ontwikkelen voor iOS
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Berichten van vandaag

Reageren

 

Discussietools Weergave
  #21  
Oud 04-07-11, 15:09
DJ14 DJ14 is offline
• iOS 7.1
• 4.3.5
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2010
Berichten: 121
Standaard

Citaat:
Oorspronkelijk geplaatst door Wesleyyyy Bekijk bericht
Haha, maar hoe heb jij het gedaan code zoeken of tutorials gevolgd misschien iets anders?
Oke, zal me ff voorstellen. Leeftijd: 16. Januari dit jaar kreeg ik op school een idee over hoe ik de roosterwijzigingen van mijn school in een iPhone app kon brengen. Voor die tijd was ik al iets van een half jaar bezig met PHP, HTML en CSS. Met behulp van die skills heb ik de 'backend' van de roosterwijzigingen app gebouwd. De iPhone app zelf is uiterst simpel en bevat geen spannende code (google + stackoverflow zijn geweldig, in het begin is het nog niet belangrijk dat je dit niet snapt, maar na verloop van tijd zal het kwartje vallen). Die app heb ik gratis beschikbaar gesteld, is een groot succes geweest binnen mijn scholengemeenschap en wordt tot op de dag van vandaag nog steeds veel gebruikt (iTunes link:PSG Roosters voor iPhone, iPod touch en iPad in de iTunes App Store). Al snel kreeg ik de basics van Objective-C door, en ben ik begonnen aan mijn tweede app, dit keer betaald. Deze is begin mei gereleased (zie: Outlet Finder for iPhone, iPod touch, and iPad on the iTunes App Store). Nu ben ik bezig met mijn derde app, waar al behoorlijk veel tijd in gestoken is. De syntax is geen enkel probleem meer. Ik moet ook nog zeggen dat ik 2 boeken over obj-c heb liggen. Deze boeken heb ik hooguit twee keer open gedaan, omdat ik gewoon geen geduld heb om alleen te lezen. Mijn advies is, zoals ik hiervoor al zei, gewoon beginnen aan een niet al te complexe app, als je iets niet snapt probeer te googlen en anders kun je op dit forum terecht. Op forums zoals deze (ik weet niet of ik hier een ander veel groter forum mag noemen) doe je ook veel ervaring op, door vragen van anderen met de antwoorden hierop te bekijken.

Ik hoop dat je hier iets aan hebt, succes met je app verder.
Gesponsorde links
Advertentie
Advertentie

  #22  
Oud 04-07-11, 17:16
JornZ JornZ is offline
• iOS 6.1.3
• 6.1.2
• Besturingssysteem: Windows
 
Geregistreerd: Sep 2010
Berichten: 364
Standaard

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];
Als ik geen typfouten heb gemaakt dan heb je nu een dictionary waar onder elke key (eerste letter van de naam) een array met bijbehorende namen te vinden is. Middels bijvoorbeeld:
Code:
 NSArray *arrayForKeyA = [dictionary objectForKey:@"A"];
Dan krijg je de array met de namen die beginnen met een A uit de dictionary.

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  
Oud 04-07-11, 17:32
wubbe wubbe is offline
• iOS 5.0
• 5.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Oct 2008
Locatie: Haarlem
Berichten: 348
Standaard

Citaat:
Oorspronkelijk geplaatst door JornZ Bekijk bericht
Dit laatste is hoe de meeste ervaren programmeurs dit varkentje zullen wassen.
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  
Oud 04-07-11, 17:58
Whacko Whacko is offline
• iOS 7.1.2
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jan 2009
Berichten: 484
Standaard

Citaat:
Oorspronkelijk geplaatst door wubbe Bekijk bericht
De meest ervaren programmeeurs zetten deze structuur in een .plist file en hebben dit (moeilijk onderhoudbare) stuk code niet nodig.
of in een database, da's makkelijker met aanpassingen
__________________
Software Engineer
iPhone Developer
  #25  
Oud 04-07-11, 18:06
wubbe wubbe is offline
• iOS 5.0
• 5.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Oct 2008
Locatie: Haarlem
Berichten: 348
Standaard

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  
Oud 05-07-11, 09:51
JornZ JornZ is offline
• iOS 6.1.3
• 6.1.2
• Besturingssysteem: Windows
 
Geregistreerd: Sep 2010
Berichten: 364
Standaard

Citaat:
Oorspronkelijk geplaatst door wubbe Bekijk bericht
De meest ervaren programmeeurs zetten deze structuur in een .plist file en hebben dit (moeilijk onderhoudbare) stuk code niet nodig.
Ik had het over dynamische data als je goed leest, dus data die per keer kan verschillen (omdat je bijvoorbeeld iets van internet binnenhaalt), dan heb je niet zoveel aan een plist met vaste waarden...

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  
Oud 05-07-11, 09:56
wubbe wubbe is offline
• iOS 5.0
• 5.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Oct 2008
Locatie: Haarlem
Berichten: 348
Standaard Goed lezen?

Citaat:
Oorspronkelijk geplaatst door JornZ Bekijk bericht
Ik had het over dynamische data als je goed leest, dus data die per keer kan verschillen
Dan heb ik dit dus niet goed gelezen
Citaat:
Oorspronkelijk geplaatst door JornZ Bekijk bericht
Ik ga er maar even vanuit dat je een vaste set data hebt
  #28  
Oud 05-07-11, 09:58
JornZ JornZ is offline
• iOS 6.1.3
• 6.1.2
• Besturingssysteem: Windows
 
Geregistreerd: Sep 2010
Berichten: 364
Standaard

Citaat:
Oorspronkelijk geplaatst door wubbe Bekijk bericht
Dan heb ik dit dus niet goed gelezen
Nog een keer goed lezen. De opmerking over "varkentje wassen" ging niet over een vaste set data...
  #29  
Oud 05-07-11, 11:26
Wesleyyyy Wesleyyyy is offline
• iOS 4.2.1
• Ik heb geen iPad
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jun 2011
Berichten: 15
Standaard

@JornZ,

ik heb jouw code gebruikt maar nu krijg ik een "sigabrt" error.

Citaat:
#import "RootViewController.h"

@implementation RootViewController

- (void)dealloc
{
[verzamelArray release];
[super dealloc];
}

- (void)viewDidLoad
{
[super viewDidLoad];

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];


}

- (NSArray *)sectionIndexTitlesForRootViewUITableView *)rootView {

NSArray *keys = [NSArray arrayWithObjects:@"A", @"B", @"C", @"P", @"H", @"W", nil];

NSDictionary *dictionary = [[NSDictionary dictionaryWithObjects:verzamelArray forKeys:keys] retain];
}
  #30  
Oud 05-07-11, 13:03
JornZ JornZ is offline
• iOS 6.1.3
• 6.1.2
• Besturingssysteem: Windows
 
Geregistreerd: Sep 2010
Berichten: 364
Standaard

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];
onder de viewDidLoad method plaatsen. En vervolgens onder de sectionIndexTitlesForRootView method de keys uit de dictionary verkrijgen en returnen via:
Code:
return [dictionary allKeys];
Je hebt trouwens ook verzamelArray onder de dealloc method staan, dit hoeft niet bij mijn voorbeeld. Je hoeft alleen maar objecten te releasen die je retained, maar dan wel in de correcte scope (je moet je afvragen in welk deel van de code de pointers nog bereikbaar/geldig zijn).

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  
Oud 06-07-11, 12:01
Wesleyyyy Wesleyyyy is offline
• iOS 4.2.1
• Ik heb geen iPad
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jun 2011
Berichten: 15
Standaard

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 ..
Reageren



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

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Uit



Alle tijden zijn GMT +2. Het is nu 16:25.