오전 , 오후, 시간, 반복, 설정 이러한 key와 이에 대한 value
다음과 같은 key value 쌍으로 정의 하면
["ampm":"오전","time":"06:00","repeat":"월화수목금","setting":"OFF"],
이러한 데이터를 저장하는 swift의 데이터 형은 어떻게 선언 하는가
[String : String]
이러한 데이터를 array로 처리 하니 다음과 같은 타입이 된다.
[[String: String]]
이러한 데이터를 파일로 저장했다가 필요에 따라 로드 하고 변경이되면 저장 해야 한다.
NSKeyedUnarchiver, NSKeyedArchiver를 이용하여 저장 하고 불러 올수 있다.
사용자 경로 처리를 위한 helper 클래스
class Helper {
static let sharedInstance = Helper()
static func getDocumentsDirectory() -> NSString {
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentsDirectory = paths[0]
return documentsDirectory
}
}
사용자 경로에서 moriningcall.archive로 저장을 하고 불러오는 코드는 대략 아래와 같다.
다음과 같이 어레이를 선언 한다.
var morningcalldata: [[Sting:String]]!
let filemgr = NSFileManager.defaultManager()
let filename = Helper.getDocumentsDirectory().stringByAppendingPathComponent("morningcall.archive")
if filemgr.fileExistsAtPath(filename) {
morningcalldata = NSKeyedUnarchiver.unarchiveObjectWithFile(filename) as! [[String: String]]
} else {
//디폴트 데이터
morningcalldata = [
["ampm":"오전","time":"06:00","repeat":"월화수목금","setting":"OFF"],
["ampm":"오전","time":"06:00","repeat":"월화수목금","setting":"OFF"],
["ampm":"오전","time":"06:00","repeat":"월화수목금","setting":"OFF"],
["ampm":"오전","time":"06:00","repeat":"월화수목금","setting":"OFF"],
["ampm":"오전","time":"06:00","repeat":"월화수목금","setting":"OFF"]
]
//최초 save
NSKeyedArchiver.archiveRootObject(morningcalldata, toFile: filename )
}
댓글 없음:
댓글 쓰기