AVFoundationでオーディオを録音し、そのファイルをDocumentDirectoryに保存しています。コアデータでは、 "サウンド"エンティティはURLを文字列として保存します。すべてがうまくいっています。しかし、私は疑問に思っています:サウンドエンティティがCore Dataから削除されたとき、DocumentDirectoryからファイルを削除するにはどうすればいいのですか?それとも自動的に起こりますか?Core Dataエンティティを削除すると、DocumentDirectoryのオーディオファイルが削除されますか?
ディスクに保存するための私のコードは:
let directoryURL = NSFileManager.defaultManager().URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask).first
let audioFileName = NSUUID().UUIDString + ".m4a"
let audioFileURL = directoryURL!.URLByAppendingPathComponent(audioFileName)
// URL for Core Data store
audioURL = audioFileName
// Setup audio session
let audioSession = AVAudioSession.sharedInstance()
do {
try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: AVAudioSessionCategoryOptions.DefaultToSpeaker)
} catch _ {
print("Error creating AVAudioSession")
}
let recordSettings = [AVFormatIDKey: NSNumber(unsignedInt: kAudioFormatMPEG4AAC), AVSampleRateKey: 44100.0, AVNumberOfChannelsKey: 2]
// Initiate and prepare recorder
audioRecorder = try?AVAudioRecorder(URL: audioFileURL!, settings: recordSettings)
audioRecorder?.delegate = self
audioRecorder?.meteringEnabled = true
audioRecorder?.prepareToRecord()
は、どのような援助のためにありがとうございました!申し訳ありませんが、シム内のドキュメントディレクトリにあるファイルを追跡するのが少し難しいことがわかりました。 (私はSwift 2.3に入っています)
ah fantastic thanksトム!私はprepareForDeletionに追加しようと考えています。きれいなアプローチのように聞こえると思っていたよりもはるかに簡単です(「音」エンティティは他のコアデータエンティティの子です)。 –