0

Ich habe die Dateifreigabe in meiner App aktiviert und wenn Sie den Dokumentenordner in iTunes anzeigen, gibt es dort die Core Data-Sqlite-Dateien mit dem Benutzer herumgespielt werden.So blenden Sie SQLite DB-Dateien aus, so dass sie nicht in iTunes freigegeben sind

Ich habe ein paar Diskussionen zu diesem Thema gefunden, aber erstaunlicherweise scheint niemand die Bedenken, die ich habe, anzusprechen.

Einige sagen, sie in den Bibliotheksordner zu 'verschieben' - in einem benutzerdefinierten Unterverzeichnis, und ein anderer sagt, benennen Sie einfach die Dateien, die jeweils mit einem Punkt vorangestellt sind.

Beide Optionen klingen schön, aber das sind wesentliche Betriebssystemdateien! Also meine erste Frage ist, wenn Sie eines dieser Dinge (mit NSFileManager.defaultManager() - ich vermute), wird die App nur automatisch danach finden? ... oder gibt es eine bestimmte "Art und Weise", in der Sie (oder beide) ... tun, damit die App sie später findet?

Alle Antworten, wenn Sie mit Swift anstelle von Objective C demonstrieren könnten, würden wir uns freuen! Danke, :)

+0

Behalten Sie sie im Bibliotheksordner. Die Anwendung hat nur Zugriff auf Dateien im Dokumentordner über iTunes. –

+0

Danke, aber wie ich gefragt habe, wenn ich diese Dateien einfach verschiebe, wird die App sie automatisch finden, ohne irgendwelche anderen Einstellungen vorzunehmen? ... Wann bewegst du sie? nur einmal beim ersten Start? – Aroniousness

+0

Die App wird sie nicht alleine finden. Sie sagen es, wo Sie sie finden können. NSLibraryDirectory verweist auf die Bibliothek. NSDocumentDirectory verweist auf den Dokumentenordner. –

Antwort

2

figured it out: Für jeden das Gleiche fragen (was ich habe viele tun gesehen),

In meinem AppDelegate> in der 'persistentStoreCoordinator' faul Variable, Ich habe die folgende Codezeile:

let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("MyAppName.sqlite") 

auf die folgenden zwei Codezeilen:

let library = NSFileManager.defaultManager().URLsForDirectory(.LibraryDirectory, inDomains: .UserDomainMask)[0] as NSURL 
let url = libary.URLByAppendingPathComponent("MyAppName.sqlite") 
+0

@RoNiT, Danke für die Formatierung :) – Aroniousness

1

Dies wäre der syn Steuer für Swift 3/4:

let library = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask)[0] as NSURL 
    let url = library.appendingPathComponent("MyAppName.sqlite") 
Verwandte Themen