@@ -65,11 +65,32 @@ open class URLCredential : NSObject, NSSecureCoding, NSCopying {
65
65
*/
66
66
67
67
public required init ? ( coder aDecoder: NSCoder ) {
68
- NSUnimplemented ( )
68
+ guard aDecoder. allowsKeyedCoding else {
69
+ preconditionFailure ( " Unkeyed coding is unsupported. " )
70
+ }
71
+
72
+ func bridgeString( _ value: NSString ) -> String ? {
73
+ return String . _unconditionallyBridgeFromObjectiveC ( value)
74
+ }
75
+
76
+ let encodedUser = aDecoder. decodeObject ( forKey: " NS._user " ) as! NSString
77
+ self . _user = bridgeString ( encodedUser) !
78
+
79
+ let encodedPassword = aDecoder. decodeObject ( forKey: " NS._password " ) as! NSString
80
+ self . _password = bridgeString ( encodedPassword) !
81
+
82
+ let encodedPersistence = aDecoder. decodeObject ( forKey: " NS._persistence " ) as! NSNumber
83
+ self . _persistence = Persistence ( rawValue: encodedPersistence. uintValue) !
69
84
}
70
85
71
86
open func encode( with aCoder: NSCoder ) {
72
- NSUnimplemented ( )
87
+ guard aCoder. allowsKeyedCoding else {
88
+ preconditionFailure ( " Unkeyed coding is unsupported. " )
89
+ }
90
+
91
+ aCoder. encode ( self . _user. _bridgeToObjectiveC ( ) , forKey: " NS._user " )
92
+ aCoder. encode ( self . _password. _bridgeToObjectiveC ( ) , forKey: " NS._password " )
93
+ aCoder. encode ( self . _persistence. rawValue. _bridgeToObjectiveC ( ) , forKey: " NS._persistence " )
73
94
}
74
95
75
96
static public var supportsSecureCoding : Bool {
@@ -84,6 +105,17 @@ open class URLCredential : NSObject, NSSecureCoding, NSCopying {
84
105
return self
85
106
}
86
107
108
+ open override func isEqual( _ object: Any ? ) -> Bool {
109
+ if let other = object as? URLCredential {
110
+ return other === self
111
+ || ( other. _user == self . _user
112
+ && other. _password == self . _password
113
+ && other. _persistence == self . _persistence)
114
+ }
115
+
116
+ return false
117
+ }
118
+
87
119
/*!
88
120
@method persistence
89
121
@abstract Determine whether this credential is or should be stored persistently
0 commit comments