Array met dicts naar een plist schrijven

Array met dicts naar een plist schrijven discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Hallo, ik ben een simpel programma aan het schrijven naar aanleiding van deze tutorial (het is eigenlijk voor Mac OSX, niet voor iPhone maar ik ...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > Development > Ontwikkelen voor iOS
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Zoeken Berichten van vandaag Markeer forums als gelezen
  #1  
Oud 18 November 2009, 09:49
» iPhone 3GS 16GB (Zwart) [FW: 3.1.2]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 18 November 2009
Berichten: 1
Standaard Array met dicts naar een plist schrijven

Hallo,

ik ben een simpel programma aan het schrijven naar aanleiding van deze tutorial (het is eigenlijk voor Mac OSX, niet voor iPhone maar ik nam aan dat op dit forum de kennis ook in huis is) .

De gebruiker ziet een lijstje, kan daar een muziekbestand aan toevoegen en afspelen, en als het programma opnieuw wordt gestart staan de toegevoegde tracks er nog steeds in. Een soort uitgeklede versie (zeg maar naakt) van iTunes dus.

Het probleem is dat de toegevoegde tracks niet worden opgeslagen.

Ik gebruik een NSList om de bestandsnamen te weergeven die in Songs.plist staan. Dat werkt. Een bestand toevoegen aan de lijst werkt ook, het pad naar dat bestand komt dan in de lijst te staan. Echter als ik het programma afsluit en weer opstart, zijn de toegevoegde bestanden niet opgeslagen, ze worden niet weggeschreven. Alle stappen daarvoor werken prima, echt alleen het regeltje dat de bestanden opslaat werkt niet.

Relevante code:

Code:
- (IBAction)addSong:(id)sender { 
   // Create the File Open Dialog class. 
   NSOpenPanel* openDlg = [NSOpenPanel openPanel]; 
    
   // Enable the selection of files in the dialog. 
   [openDlg setCanChooseFiles:YES]; 
    
   // Enable the selection of directories in the dialog. 
   [openDlg setCanChooseDirectories:NO]; 
    
    
   // Display the dialog.  If the OK button was pressed, process the first file. 
   if ( [openDlg runModalForDirectory:nil file:nil] == NSOKButton ) 
   { 
      // Get an array containing the full filenames of all files and directories selected. 
      NSArray* files = [openDlg URLs]; 
 
      NSString* fileName = [files objectAtIndex:0]; 
       
      //create a new song entry based on the input values 
      NSDictionary *dict = [NSDictionary dictionaryWithObject:fileName forKey:@"fileName"]; 
 
    
      NSLog(@"dict = %@", dict); 
 
      //add it to the arrayController 
      [IBSongsArray addObject:dict];       
   } 
   //save the changes to the plist 
   if( ![[NSFileManager defaultManager] fileExistsAtPath:filePath] || [[NSFileManager defaultManager] isWritableFileAtPath:filePath]) { 
      NSLog(@"filepath: %@", filePath); 
      [[IBSongsArray arrangedObjects] writeToFile:filePath atomically:YES]; 
   } 
    
}
De NSLogs loggen wat ze moeten loggen.

Alvast dank,

Ruben

Laatst gewijzigd door MaximalFX; 18 November 2009 om 09:51.
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

Reageren

Labels
dictionary, file, plist, writetofile, xml


Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten)

 
Discussietools
Weergave

Soortgelijke discussies

Discussie Auteur Forum Reacties Laatste bericht
Mac OS X: iTunes kan niet meer schrijven naar iPhone kleinecasper iTunes 26 15 June 2012 13:05
Mac OS X: Schrijven naar iPhone 3G onmogelijk Mackjenzie iTunes 0 22 March 2010 20:30
Windows: Een Plist Editor voor windows? midon Desktop-applicaties 8 28 June 2009 16:15
XML in een plist file ulquiorra Ontwikkelen voor iOS 12 26 May 2009 17:49
itunes kan muziek niet naar iphone schrijven sapje iTunes 4 7 January 2009 16:02

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 05:46.