if let index = csvData.index(where: { $0["email"] as! String == email }) {
csvData.remove(at: index)
return true
// 바탕화면에 파일 있는지 확인하고 csv파일 생성
let fileManager = FileManager.default
let desktopPath = "/Users/maylily/Desktop"
let desktopPathURL = URL.init(fileURLWithPath: "/Users/maylily/Desktop")
do {
// Add Component
let csvPath = desktopPathURL.appendingPathComponent("\(file).csv")
// isExists
if fileManager.fileExists(atPath: desktopPath + "/\(file).csv") { return false }
let text = self.rawData
try text.write(to: csvPath, atomically: false, encoding: .utf8)
return true
} catch let error as NSError {
print("Error : \(error.localizedDescription)")
return false
}
// 디렉토리 생성
var documentsDirectory = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first!
let dataPath = documentsDirectory.appendingPathComponent("FileManager Directory")
do {
// 디렉토리 생성
try fileManager.createDirectory(atPath: dataPath.path, withIntermediateDirectories: false, attributes: nil)
} catch let error as NSError {
print("Error creating directory: \(error.localizedDescription)")
}
//urls(for:in:) 메소드를 통해 특정 경로에 접근한다.
//해당 경로에 추가 경로를 지정하는 방식으로 디렉토리 명을 추가한다.
//디렉토리를 생성한다.
let str = "Super long string here"
let filename = getDocumentsDirectory().appendingPathComponent("output.txt")
do {
try str.write(to: filename, atomically: true, encoding: String.Encoding.utf8)
} catch {
// failed to write file – bad permissions, bad filename, missing permissions, or more likely it can't be converted to the encoding
}
func getDocumentsDirectory() -> URL {
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
return paths[0]
}
let timestamp = NSDate().timeIntervalSince1970
싱글턴은 '특정 클래스의 인스턴스가 오직 하나임을 보장하는 객체'를 의미
reference
이벤트 처리를 위한 loop로 입력소스와 타이머소스를 주로 처리.