Domanda

Ho un plist che sto cambiando:

NSString *finalPath = [path stringByAppendingPathComponent:@"KeyFrameFileByMovie.plist"];
NSMutableDictionary *keyFrameFileByMovie = [[NSMutableDictionary alloc] initWithContentsOfFile:finalPath];
[keyFrameFileByMovie setValue:keyFrameName forKey:movieName];
BOOL isOk = [keyFrameFileByMovie writeToFile:finalPath atomically:YES];

Al Isok simulatore è 1 sul dispositivo Isok è 0

Non credo che si tratta di un problema di sensative caso, perché ho un codice di ottenere che funziona:

NSString *finalPath = [path stringByAppendingPathComponent:@"KeyFrameFileByMovie.plist"];<br>
NSDictionary *plistData =[[NSDictionary dictionaryWithContentsOfFile:finalPath] retain];

Perché non writeToFile fallire su dispositivo?

È stato utile?

Soluzione

applicazione per iPhone ha molto severa struttura di directory. Purtroppo i permessi sul dispositivo vs simulatore sono spettacolo diverso. Quindi l'unico problema qui può essere che non si sta salvando nella directory Documenti, ma nel dir MainBundle.

Nel precedente esempio, qual è il valore di percorso?

Altri suggerimenti

Qual è il percorso che stai originariamente a cominciare? Ricordate, l'iPhone è case-sensitive, ma il Mac è (di solito) non è, in modo che possa essere inciampare in su. Vorrei accedere finalPath al log in entrambi i casi, e visivamente verificare che siano la stessa cosa.

Aggiungi "/", mentre aggiungendo la stringa

NSString *finalPath = [path stringByAppendingPathComponent:@"/KeyFrameFileByMovie.plist"];
NSString *applicationDocumentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *storePath = [applicationDocumentsDir stringByAppendingPathComponent:@"default.txt"];
NSString *stringFilepath = [docPath stringByAppendingPathComponent:@"configlocaljson.json"];[replacedString writeToFile:stringFilepath atomically:YES encoding:NSUTF8StringEncoding error:nil];
NSError * error = nil;
BOOL success = [replacedString writeToFile:stringFilepath atomically:YES encoding:NSUTF8StringEncoding error:&error];
NSLog(@"Success = %d, error = %@", success, error);

Il suo lavoro per me.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top