0
でDocumentDirectoryで
URLByAppendingPathComponent
を使用する必要がある場合は、問題がURLByAppendingPathExtension
を使用していると思います。 "パス拡張子"はファイル拡張子なので、archivePath
は "〜/ Documents.meditations.archive"です。 CachesDirectoryは一時的なファイルにデータを置いているか、メモリから読み込んでいるだけなので、一時的にCachesDirectoryで作業している可能性があります。これで修正する必要があります:
let fileManager = NSFileManager()
let documentDirectoryUrls = fileManager.URLsForDirectory(.DocumentDirectory, .UserDomainMask)
if let documentDirectoryUrl = documentDirectoryUrls.first {
let fileUrl = documentDirectoryUrl.URLByAppendingPathComponent("meditations.archive")
// Also, take advantage of archiveRootObject's return value to check if
// the file was saved successfully, and safely unwrap the `path` property
// of the URL. That will help you catch any errors.
if let path = fileUrl.path {
let success = NSKeyedArchiver.archiveRootObject(meditationArray, toFile: path)
if !success {
print("Unable to save array to \(path)")
}
} else {
print("Invalid path")
}
} else {
print("Unable to find DocumentDirectory for the specified domain mask.")
}