Skip to content

Commit 0a2a701

Browse files
authored
Merge pull request swiftlang#2446 from millenomi/nsdictionary-nonkeyedarchiver
Parity: NSDictionary: Non-keyed archiving marked as NSUnimplemented()
2 parents 93952bb + 960b0d7 commit 0a2a701

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

Foundation/NSDictionary.swift

+16-1
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,22 @@ open class NSDictionary : NSObject, NSCopying, NSMutableCopying, NSSecureCoding,
148148
keyedArchiver._encodeArrayOfObjects(self.allKeys._nsObject, forKey:"NS.keys")
149149
keyedArchiver._encodeArrayOfObjects(self.allValues._nsObject, forKey:"NS.objects")
150150
} else {
151-
NSUnimplemented()
151+
guard aCoder.allowsKeyedCoding else {
152+
preconditionFailure("Unkeyed decoding is unsupported.")
153+
}
154+
155+
var count = 0
156+
var keyKey: String {
157+
"NS.key.\(count)"
158+
}
159+
var objectKey: String {
160+
"NS.object.\(count)"
161+
}
162+
for key in self.allKeys {
163+
aCoder.encode(key as AnyObject, forKey: keyKey)
164+
aCoder.encode(self[key] as AnyObject, forKey: objectKey)
165+
count += 1
166+
}
152167
}
153168
}
154169

0 commit comments

Comments
 (0)