@@ -16,14 +16,15 @@ import Foundation
1616 * and when I use those utility extensions on them, `fatalError()` occurs because it doesn't conform to `JSONEncodable`.
1717 * So to avoid this problem, `ApolloDeveloperKit` have to prepare some more extensions for Cocoa types.
1818 */
19+ protocol ExtendedJSONEncodable : JSONEncodable { }
1920
20- extension NSString : JSONEncodable {
21+ extension NSString : ExtendedJSONEncodable {
2122 public var jsonValue : JSONValue {
2223 return ( self as String ) . jsonValue
2324 }
2425}
2526
26- extension NSNumber : JSONEncodable {
27+ extension NSNumber : ExtendedJSONEncodable {
2728 public var jsonValue : JSONValue {
2829 switch CFGetTypeID ( self ) {
2930 case CFBooleanGetTypeID ( ) :
@@ -36,55 +37,55 @@ extension NSNumber: JSONEncodable {
3637 }
3738}
3839
39- extension NSDictionary : JSONEncodable {
40+ extension NSDictionary : ExtendedJSONEncodable {
4041 public var jsonValue : JSONValue {
4142 return ( self as [ NSObject : AnyObject ] ) . jsonValue
4243 }
4344}
4445
45- extension NSArray : JSONEncodable {
46+ extension NSArray : ExtendedJSONEncodable {
4647 public var jsonValue : JSONValue {
4748 return ( self as [ AnyObject ] ) . jsonValue
4849 }
4950}
5051
51- extension NSNull : JSONEncodable {
52+ extension NSNull : ExtendedJSONEncodable {
5253 public var jsonValue : JSONValue {
5354 return self
5455 }
5556}
5657
57- extension CFString : JSONEncodable {
58+ extension CFString : ExtendedJSONEncodable {
5859 public var jsonValue : JSONValue {
5960 return ( self as NSString ) . jsonValue
6061 }
6162}
6263
63- extension CFNumber : JSONEncodable {
64+ extension CFNumber : ExtendedJSONEncodable {
6465 public var jsonValue : JSONValue {
6566 return ( self as NSNumber ) . jsonValue
6667 }
6768}
6869
69- extension CFBoolean : JSONEncodable {
70+ extension CFBoolean : ExtendedJSONEncodable {
7071 public var jsonValue : JSONValue {
7172 return CFBooleanGetValue ( self ) . jsonValue
7273 }
7374}
7475
75- extension CFDictionary : JSONEncodable {
76+ extension CFDictionary : ExtendedJSONEncodable {
7677 public var jsonValue : JSONValue {
7778 return ( self as NSDictionary ) . jsonValue
7879 }
7980}
8081
81- extension CFArray : JSONEncodable {
82+ extension CFArray : ExtendedJSONEncodable {
8283 public var jsonValue : JSONValue {
8384 return ( self as NSArray ) . jsonValue
8485 }
8586}
8687
87- extension CFNull : JSONEncodable {
88+ extension CFNull : ExtendedJSONEncodable {
8889 public var jsonValue : JSONValue {
8990 return self as NSNull
9091 }
0 commit comments