Swift 언어 개요 - 정렬화 및 반정렬화

2764 단어
swift에서 대상을 데이터로 변환할 수 있습니다. 당신이 해야 할 일은
먼저 객체가 NSObject 및 NSCoding 프로토콜을 사용하도록 해야 합니다.
그 다음으로 다음과 같은 두 가지 방법을 실현한다.
  encodeWithCoder
init(coder aDecoder: NSCoder)//NSCoder 매개 변수가 있는 초기화기
예제 코드:
class SerializableObject : NSObject, NSCoding {
    var name : String?
    func encodeWithCoder(aCoder: NSCoder) {
        aCoder.encodeObject(name!, forKey:"name")
    }
    override init() {
        self.name = "My Object"
    }
    required init(coder aDecoder: NSCoder) {
        self.name = aDecoder.decodeObjectForKey("name") as? String
    }
}

객체가 NSCoding 프로토콜을 구현하면 NSData 객체로 변환됩니다.
NSKeyedArchiver - 서열화
NSKeyedUnarchiver - 역서열화
예제 코드:
let anObject = SerializableObject()
anObject.name = "My Thing That I'm Saving"

// Converting it to data
let objectConvertedToData = NSKeyedArchiver.archivedDataWithRootObject(anObject)

// Converting it back
// Note that the conversion might fail, so 'unarchiveObjectWithData' returns
// an optional value. So, use 'as?' to check to see if it worked.
let loadedObject = NSKeyedUnarchiver.unarchiveObjectWithData(objectConvertedToData)
    as? SerializableObject

print(loadedObject?.name) //"My Thing That I'm Saving"

좋은 웹페이지 즐겨찾기