//

Bestand opslaan werkt wel in simulator maar niet op apparaat.

Bestand opslaan werkt wel in simulator maar niet op apparaat. discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Goedemiddag, ik probeer deze code werkend te krijgen: Code: void updateDatabase(){ // Determine remote url and local url according to target #ifdef Durbuy NSString *stringURL ...



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 28-10-12, 17:15
Werner291 Werner291 is offline
 
• 5.1.1
• Besturingssysteem: Linux
 
Geregistreerd: Jul 2012
Berichten: 15
Standaard Bestand opslaan werkt wel in simulator maar niet op apparaat.

Goedemiddag, ik probeer deze code werkend te krijgen:

Code:
void updateDatabase(){
    // Determine remote url and local url according to target
#ifdef Durbuy
    NSString *stringURL = @"http://www.***.**/app/DurbuyAppDatabase.sqlite"; // ** = gemaskeerd.
    NSString  *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"DurbuyAppDatabase.sqlite"];
    NSLog(@"File path: %@",filePath);
#endif
#ifdef LaRoche
    NSString *stringURL = @"http://www.***.**/app/LaRocheApp.sqlite"; // ** = gemaskeerd.
    NSString  *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"LaRocheAppDatabase.sqlite"];

#endif
    
    // Prepare URL from string
    NSURL  *url = [NSURL URLWithString:stringURL];
    
    // Fetch data from server
    NSData *urlData = [NSData dataWithContentsOfURL:url];
    
    if ( urlData )
    {
        NSLog(@"Retrieved %d bytes of data: %@",urlData.length,[NSString stringWithUTF8String:[urlData bytes]]); // Output: Retrieved 786432 bytes of data: SQLite format 3
        // Write database to file
        [urlData writeToFile:filePath atomically:YES];
        
        // Fetch version ID from server
#ifdef Durbuy
        NSString *stringURL = @"http://www.***.**/app/durbuy_database_version_id.txt"; // ** = gemaskeerd.
#endif
#ifdef LaRoche
        NSString *stringURL = @"http://www.***.**/app/laroche_database_version_id.txt"; // ** = gemaskeerd.
#endif
        NSURL  *url = [NSURL URLWithString:stringURL];
        NSData *remoteMD5Data = [NSData dataWithContentsOfURL:url];
        NSString *remoteDatabaseMD5 = [NSString stringWithUTF8String:[remoteMD5Data bytes]];
        
        // Write ID to settings file
        filePath = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"plist"];
        NSMutableDictionary *plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
        [plistDict setObject:remoteDatabaseMD5 forKey:@"database_md5"];
        
        [plistDict writeToFile:filePath atomically:YES]; 
    } 
}
Deze code moet een database dowloaden van een internetsite en die lokaal opslaan (een ander bestand overschrijvend). Vervolgens moet de code een stuk text van dezelfde internetsite dowloaden en in Settings.plist opslaan. Deze code werkt precies zoals bedoeld in de iPhone simulator, maar op het echte apparaat wordt het bestand om de een of andere reden niet opgeslagen, en ook wordt de text niet opgeslagen. Is dit een verschil tussen de bestandsysteemen van iOS en MacOSX? Hoe kan ik het aanpassen zodat het wel werkt?


EDIT: Het werkte niet omdat ik naar de app bundle probeerde te schrijven!

Laatst gewijzigd door Werner291; 28-10-12 om 20:30. Reden: Oplossing
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

  #2  
Oud 29-10-12, 11:42
TUX2K TUX2K is offline
• iOS 14.0
• 8.1.2
• Besturingssysteem: Mac OS X
 
Geregistreerd: Oct 2008
Locatie: Amsterdam
Berichten: 174
Standaard

Wat ben ik een spuit 11, las je edit niet

Je probleem zit in het feit dat je niet naar bestanden kan schrijven die in je app bundle zitten. dus alles in je [NSBundle mainBundle] zijn readonly.

Als je bestanden weg schrijft moet deze in de document directory staat:

Code:
/**
 Returns the URL to the application's Documents directory.
 */
- (NSString *)applicationDocumentsDirectory {
	
    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES) objectAtIndex:0];
}

Laatst gewijzigd door TUX2K; 29-10-12 om 12:14.
  #3  
Oud 30-10-12, 08:44
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 TUX2K Bekijk bericht
Wat ben ik een spuit 11, las je edit niet
Maar je gaf wel een nuttige toevoeging aan dit draadje, je gaf namelijk het antwoord . Altijd handig voor anderen.
__________________
Leon
[iPhone- en Java ontwikkelaar]
Reageren



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
Wel een .m4r bestand maar geen sync videologic iTunes 1 28-11-09 10:50
gmail werkt wel op Wi-Fi maar niet op 3g dennisiphone Wi-Fi 0 01-11-09 14:30
App store werkt wel maar safari niet Upodtouch iPhone Apps 2 17-10-09 22:07
3.0: vind wel Wi-Fi maar werkt niet tommehh Wi-Fi 15 28-06-09 18:37
Iphone gaat niet aan, maar word wel als usb apparaat ontdekt Drinkyoghurt Unlock [archief] 39 25-06-08 12:31

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 07:45.