swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai

75
EZNET 熊友宏 http://eznet.jp/ 2015.04.11 @ 第61回 Cocoa 勉強会関 Swift カジュアルプログラミング 《基礎》変値と可変値 前回の続き(おまけ)

Upload: tomohiro-kumagai

Post on 28-Jul-2015

313 views

Category:

Technology


0 download

TRANSCRIPT

1. EZ-NET http://ez-net.jp/ 2015.04.11 @ 61 Cocoa Swift 2. http://ez-net.jp/ @es_kumagai Xcode 5 IP Phone for iPhone for iPad 3. http://ez-net.jp/ @es_kumagai #yidev iPhone 4. Swift 5. 6. 7. 8. 9. 10. Swift AnyObject 11. Type Instance 12. - class - struct - - 13. AnyObject 14. AnyObject 15. AnyObject // let obj:AnyObject = MyClass() 16. // let obj:AnyObject = MyStruct() // let obj:AnyObject = Int(10) // let obj:AnyObject = String("STR") // let obj:AnyObject = MyEnum.A AnyObject 17. // let obj:AnyObject = reduce // let obj:AnyObject = { $0 + $1 } AnyObject 18. // let obj:AnyObject = MyClass.self AnyObject // let obj:AnyObject = MyStruct.self 19. AnyObject MyClass MyClass.Type 20. AnyObject Foundation 21. // let obj:AnyObject = MyStruct() // let obj:AnyObject = Int(10) // let obj:AnyObject = String("STR") // let obj:AnyObject = MyEnum.A AnyObject 22. Int String AnyObject AnyObject 23. Foundation AnyObject NSString NSNumber 24. 25. Objective-C Bridge String NSString 26. Objective-C Bridge _ObjectiveCBridgeable 27. STEP 1/7 Objective-C Bridge struct MyStruct:_ObjectiveCBridgeable { } _ObjectiveCBridgeable 28. STEP 2/7 Objective-C Bridge typealias _ObjectiveCType AnyObject 29. STEP 3/7 Objective-C Bridge static func _isBridgedToObjectiveC() -> Bool 30. STEP 4/7 Objective-C Bridge public static func _getObjectiveCType() -> Any.Type _ObjectiveCType.self 31. STEP 5/7 Objective-C Bridge public func _bridgeToObjectiveC() -> _ObjectiveCType 32. STEP 6/7 Objective-C Bridge public static func _forceBridgeFromObjectiveC( source: _ObjectiveCType, inout result: MyObjCBridgeClass? ) as 33. STEP 7/7 Objective-C Bridge public static func _conditionallyBridgeFromObjectiveC( source: _ObjectiveCType, inout result: MyObjCBridgeClass? ) -> Bool as? 34. Objective-C Bridge struct MyStruct : _ObjectiveCBridgeable { typealias _ObjectiveCType = NSString } let structValue = MyStruct() let string = structValue as NSString 35. Foundation Objective-C Objective-C Bridge String Int Array 36. 37. AnyObject 38. Objective-C AnyObject AnyObject 39. AnyObject // let obj:AnyObject = MyStruct() Swift AnyObject AnyObject 40. AnyObject AnyObject AnyObject AnyObject 41. 42. 43. let var let value = state let state = value 44. 45. 46. 47. Swift var value:Int = source Swift NSMutableNumber* value = source.copy(); Objective-C 48. Swift 49. 50. Array 51. Array Array var values:Array = sources Swift 52. Array 53. Array Array 54. Array Buer 55. Array Buer Buer Buer 56. Array 57. 58. CGImage 59. Objective-C CGImage Swift // typedef struct CGImage *CGImageRef; // typealias CGImageRef = CGImage 60. Swift CGImage AnyObject _ObjectiveCBridgeable Type __NSCFType 61. Objective-C CGImage 62. let 63. Swift let Swift 1.2 let image:UIImage if condition { image = UIImage(named: "maru.png") } else { image = UIImage(named: "batsu.png") } 64. let Swift let image:UIImage if condition { image = UIImage(named: "maru.png") } else { image = UIImage(named: "batsu.png") } 65. let let 66. let let Swift 1.1 67. let let Swift 1.1 68. let f g f(g(f)) = g(f) 69. let f g(f) g fffffff(g(f)) = g(f) 70. let Swift 1.1 71. let Swift 1.1 72. let var OK var 73. let Swift 1.2 let let OK 74. 75. AnyObject Objective-C