Pergunta

Exemplo: se eu usei isso, onde o iPhone armazena o arquivo?

if (![NSKeyedArchiver archiveRootObject:your_object toFile:@"filename.plist"])
   // save failed.

No meu Mac, o nome do arquivo.plist vai para o Macintosh HD diretamente. Sem pasta. Além disso, o NSKEYEDARCHIVER não parece pedir um caminho, apenas para um nome de arquivo. Estranho ou não?

E como esse arquivo está backup com o iTunes?

Foi útil?

Solução

ArchiveRootObject: Tofile:
Portanto, você deve passar por um caminho em vez de apenas um nome de arquivo. Por outro lado NSKeyedArchiver assumirá que você deseja armazená -lo na raiz do disco rígido dos dispositivos.
Para garantir que as coisas sejam apoiadas pelo iTunes, você precisaria salvar seus dados na pasta Documents, como o Diederik Hoogenboom já mostrou você. Dê uma olhada em isto guia.

Outras dicas

Bem, isso depende de onde você pede para salvar o arquivo, no seu caso, você está dizendo para armazenar filename.plist, que será armazenado em sua raiz / .

Se você deseja armazená -lo em um local específico, basta dar o caminho completo, algo como o que Diederik Hoogenboom disse a você (isso o armazenará nos documentos dir)

Ou apenas dê o caminho absoluto para o qual deseja salvar o arquivo.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent: @"myFile.plist"];
[NSKeyedArchiver archiveRootObject:your_object toFile:filePath];

Provavelmente isso deveria ter esclarecido um pouco para você.

O local adequado para armazenar os arquivos é a pasta Documents:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top