Merhaba. Bir sorum vardi.
Benim amacim Document klasorunde herhangi bir degisiklik olunca tetiklenme yapmak. Arastirdigimda soyle bir kod buldum:
import UIKit
class DirectoryObserver {
private let fileDescriptor: CInt
private let source: DispatchSourceProtocol
deinit {
self.source.cancel()
close(fileDescriptor)
}
init(URL: URL, block: @escaping ()->Void) {
self.fileDescriptor = open(URL.path, O_EVTONLY)
self.source = DispatchSource.makeFileSystemObjectSource(fileDescriptor: self.fileDescriptor, eventMask: .all, queue: DispatchQueue.global())
self.source.setEventHandler {
block()
}
self.source.resume()
}
}
Kullanimi da su sekilde:
let observer = DirectoryObserver(URL: FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!) {
//BURAYA CALISMASINI ISTEDIGINIZ KODU YAZIYORSUNUZ
}
Ben calismasini istedigim kod yerinde AVAsset veya AVURLAsset islemleri gerceklestirmek istiyorum. Ama ogrendimki AVAsset asynchronous bicimde gerceklestirilemiyormus. Sorum bu yerde AVAsset islemlerini nasil gerceklestirebilirim?