Advertisement
Guest User

Untitled

a guest
Aug 29th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. import Foundation
  2.  
  3. struct ModernStruct {
  4.  
  5. var value: Int
  6. }
  7.  
  8. class ESLegacyClass : NSObject, NSCopying {
  9.  
  10. var value: Int
  11.  
  12. init(value: Int) {
  13.  
  14. self.value = value
  15. }
  16.  
  17. func copy(with zone: NSZone? = nil) -> Any {
  18.  
  19. return ESLegacyClass(value: value)
  20. }
  21. }
  22.  
  23. extension ModernStruct : ReferenceConvertible {
  24.  
  25. // Creating an instance bridged from LegacyClass.
  26. private init(_ source: ESLegacyClass) {
  27.  
  28. value = source.value
  29. }
  30.  
  31. static func _unconditionallyBridgeFromObjectiveC(_ source: ESLegacyClass?) -> ModernStruct {
  32.  
  33. return ModernStruct(value: source!.value)
  34. }
  35.  
  36. typealias ReferenceType = ESLegacyClass
  37.  
  38. @discardableResult
  39. static func _conditionallyBridgeFromObjectiveC(_ source: ESLegacyClass, result: inout ModernStruct?) -> Bool {
  40.  
  41. result = ModernStruct(source)
  42.  
  43. return true
  44. }
  45.  
  46. static func _forceBridgeFromObjectiveC(_ source: ESLegacyClass, result: inout ModernStruct?) {
  47.  
  48. result = ModernStruct(source)
  49. }
  50.  
  51. func _bridgeToObjectiveC() -> ESLegacyClass {
  52.  
  53. return ESLegacyClass(value: value)
  54. }
  55.  
  56. var description: String {
  57.  
  58. return "\(value)"
  59. }
  60.  
  61. var debugDescription: String {
  62.  
  63. return String(reflecting: self)
  64. }
  65.  
  66. var hashValue: Int {
  67.  
  68. return 0
  69. }
  70.  
  71. static func == (lhs: ModernStruct, rhs: ModernStruct) -> Bool {
  72.  
  73. return true
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement