[SWIFT] NSCoding를 사용하여 신속한 인 코드 튜플
SWIFTNSCoding를 사용하여 신속한 인 코드 튜플
해결법
-
1.이 클래스 아니지만, 하나 개의 시도는 디코딩 된 콘텐츠로 구성 조의 튜플의 값을 설정 한 후 각 구성 요소를 디코딩하고 디코딩시에 별도로하고 튜플의 각 구성 요소를 인코딩하기 때문에 튜플 부호화 할 수 없다.
이 클래스 아니지만, 하나 개의 시도는 디코딩 된 콘텐츠로 구성 조의 튜플의 값을 설정 한 후 각 구성 요소를 디코딩하고 디코딩시에 별도로하고 튜플의 각 구성 요소를 인코딩하기 때문에 튜플 부호화 할 수 없다.
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let obj = SomeClass() obj.foo = (6,5) let data = NSKeyedArchiver.archivedDataWithRootObject(obj) NSUserDefaults.standardUserDefaults().setObject(data, forKey: "books") if let data = NSUserDefaults.standardUserDefaults().objectForKey("books") as? NSData { let o = NSKeyedUnarchiver.unarchiveObjectWithData(data) as SomeClass println(o.foo) // (Optional(6), Optional(5)) } } } class SomeClass: NSObject, NSCoding { var foo: (x: Int?, y: Int?)! required convenience init(coder decoder: NSCoder) { self.init() let x = decoder.decodeObjectForKey("myTupleX") as Int? let y = decoder.decodeObjectForKey("myTupleY") as Int? foo = (x,y) } func encodeWithCoder(coder: NSCoder) { coder.encodeObject(foo.x, forKey: "myTupleX") coder.encodeObject(foo.y, forKey: "myTupleY") } }
-
2.난 그냥 이안의 코드를 기반으로 몇 가지 업데이트가 내 코드를 공유하고자합니다. 나는 요소의 카테고리 / 하위 범주의 목록을 작성하는 광산을 사용했다.
난 그냥 이안의 코드를 기반으로 몇 가지 업데이트가 내 코드를 공유하고자합니다. 나는 요소의 카테고리 / 하위 범주의 목록을 작성하는 광산을 사용했다.
class catSubcatOption: NSObject, NSCoding { var element: (x: String, y: String)! override init() { } public func encode(with aCoder: NSCoder) { aCoder.encode(element.category, forKey: "category") aCoder.encode(element.subcategory, forKey: "subcategory") } required init(coder decoder: NSCoder) { let category = decoder.decodeObject(forKey: "category") as! String let subcategory = decoder.decodeObject(forKey:"subcategory") as! String element = (category,subcategory) } }
from https://stackoverflow.com/questions/28929897/swift-encode-tuple-using-nscoding by cc-by-sa and MIT license
'SWIFT' 카테고리의 다른 글
[SWIFT] 특정 텍스트의 UITextView 변화 텍스트 색상 (0) | 2020.11.08 |
---|---|
[SWIFT] 하나에 다른 유형의 정렬 두 배열 (0) | 2020.11.08 |
[SWIFT] 방법 십팔년 적은 오늘 날짜를 얻을 수 있습니다 (0) | 2020.11.08 |
[SWIFT] 어떻게 수락 / 거부 EKEvent 초대를? (0) | 2020.11.08 |
[SWIFT] 바인딩 조건에 대한 초기화가 선택 유형이 있어야하지 '문자열' (0) | 2020.11.08 |