Dokumentverzeichnis in iPod touch und iPhone
-
12-09-2019 - |
Frage
Ich entworfene eine Anwendung, die Daten an den iPod touch/iPhone liest, das über Multicast -Sockets mit UDP an sie gesendet wird, und ich muss sie als Datei in einem Dokumentverzeichnis speichern. Existiert das auf dem iPhone oder iPod touch? Ich weiß Ich sage. Ich bin mit dem iPod/iPhone -Dateiverzeichnis noch nicht so gut vertraut, daher wird jede Hilfe geschätzt! Gibt es ein "allgemeines" Verzeichnis, in dem alle Entwickler ihre Dateien speichern, wenn sie sich mit ihrer Anwendung befassen?
Lösung
Sie sollten das Dokumentenverzeichnis Ihrer Anwendung verwenden, um persistente Dateien zu speichern. Mit dieser Funktion können Sie den Pfad zum Verzeichnis erhalten, den Apple mithilfe von Kerndaten in der Vorlage für eine Anwendung enthält:
/**
Returns the path to the application's documents directory.
*/
- (NSString *)applicationDocumentsDirectory {
NSArray *paths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
return basePath;
}
Andere Tipps
In jüngerer Zeit enthält die Vorlage für eine Kerndatenanwendung einen solchen Code:
- (NSString *)applicationDocumentsDirectory {
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}
Wenn der zurückgegebene NSArray von NsSearchPathfordirectorySindomains leer ist, gibt LastObject Nil zurück, sodass der Code kürzer und sauberer ist.
Eine Sache, die Sie sich bewusst sein sollten-ab iOS 5 sollten Sie nicht nicht aus Benutzer erzeugte Daten in das Dokumentenverzeichnis einsetzen. Ihre App kann abgelehnt werden. Stattdessen sollten Sie daran denken, solche Protokolle einzulegen Caches
Verzeichnis. Um den Pfad davon zu erhalten, müssen Sie ersetzen NSDocumentDirectory
mit NSCachesDirectory
Im obigen Beispielcode.