├── .gitignore ├── AVLTree ├── AVLTree.playground │ ├── Pages │ │ ├── AVLTree.xcplaygroundpage │ │ │ └── Contents.swift │ │ └── 遍历协议.xcplaygroundpage │ │ │ └── Contents.swift │ ├── Sources │ │ ├── AVLNode.swift │ │ ├── AVLTree.swift │ │ └── Helpers.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── README.md ├── AbstractFactory ├── AbstractFactory.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── AbstractFactory │ ├── AbstractGUIFactory.swift │ ├── Alert.swift │ ├── AndroidAlert.swift │ ├── AndroidButton.swift │ ├── AndroidFactory.swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Button.swift │ ├── GUIBuilder.swift │ ├── Info.plist │ ├── ViewController.swift │ ├── iOSAlert.swift │ ├── iOSButton.swift │ └── iOSFactory.swift └── README.md ├── AdapterPattern ├── AdapterPattern.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── AdapterPattern │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── AuthenticationService.swift │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── GoogleAuthenticator.swift │ ├── GoogleAuthenticatorAdapter.swift │ ├── Info.plist │ └── ViewController.swift └── README.md ├── AlertController ├── AlertController.xcodeproj │ ├── .xcodeSampleCode.plist │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ └── xcschemes │ │ ├── AlertController.xcscheme │ │ └── xcschememanagement.plist ├── AlertController │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── AlertControllerTests │ ├── AlertControllerTests.m │ └── Info.plist └── README.md ├── AssociatedObject ├── AssociatedObject.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── AssociatedObject │ ├── Child+Test.h │ ├── Child+Test.m │ ├── Child.h │ ├── Child.m │ └── main.m └── README.md ├── AutoLayout ├── AutoLayout.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ └── xcschemes │ │ ├── AutoLayout.xcscheme │ │ └── xcschememanagement.plist ├── AutoLayout │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.h │ ├── ViewController.m │ └── main.m └── AutoLayoutTests │ ├── AutoLayoutTests.m │ └── Info.plist ├── Autoclosure ├── Autoclosure.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── README.md ├── BinarySearch ├── BinarySearch.playground │ ├── Pages │ │ ├── BinarySearch.xcplaygroundpage │ │ │ └── Contents.swift │ │ ├── 查找指定元素范围.xcplaygroundpage │ │ │ └── Contents.swift │ │ └── 独立的二分查找.xcplaygroundpage │ │ │ └── Contents.swift │ ├── Sources │ │ ├── BinarySearch.swift │ │ └── Helpers.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── README.md ├── BinarySearchTree ├── BinarySearchTree.playground │ ├── Pages │ │ ├── BinarySearchTree.xcplaygroundpage │ │ │ └── Contents.swift │ │ ├── 子结构.xcplaygroundpage │ │ │ └── Contents.swift │ │ ├── 是否是二叉搜索树.xcplaygroundpage │ │ │ └── Contents.swift │ │ └── 相同的树.xcplaygroundpage │ │ │ └── Contents.swift │ ├── Sources │ │ ├── BinaryNode.swift │ │ ├── BinarySearchTree.swift │ │ └── Helpers.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── README.md ├── BinaryTree ├── BinaryTree.playground │ ├── Pages │ │ ├── BinaryTree.xcplaygroundpage │ │ │ └── Contents.swift │ │ ├── 序列化树.xcplaygroundpage │ │ │ └── Contents.swift │ │ └── 树的高度.xcplaygroundpage │ │ │ └── Contents.swift │ ├── Sources │ │ ├── BinaryNode.swift │ │ └── Helpers.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── README.md ├── Block ├── Block.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── Block.xcscheme │ │ └── xcschememanagement.plist ├── Block │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Handler.h │ ├── Handler.m │ ├── Info.plist │ ├── ViewController.h │ ├── ViewController.m │ └── main.m └── BlockTests │ ├── BlockTests.m │ └── Info.plist ├── BuilderPattern ├── BuilderPattern.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── BuilderPattern │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Employee.swift │ ├── Hamburger.swift │ ├── HamburgerBuilder.swift │ ├── Info.plist │ └── ViewController.swift └── README.md ├── CollectionView ├── CollectionView.xcodeproj │ ├── .xcodesamplecode.plist │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── CollectionView │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── 1.imageset │ │ │ ├── 1.jpg │ │ │ └── Contents.json │ │ ├── 2.imageset │ │ │ ├── 2.jpg │ │ │ └── Contents.json │ │ ├── 3.imageset │ │ │ ├── 3.jpg │ │ │ └── Contents.json │ │ ├── 4.imageset │ │ │ ├── 4.jpg │ │ │ └── Contents.json │ │ ├── 5.imageset │ │ │ ├── 5.jpg │ │ │ └── Contents.json │ │ ├── 6.imageset │ │ │ ├── 6.jpg │ │ │ └── Contents.json │ │ ├── A.imageset │ │ │ ├── 11.jpg │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── B.imageset │ │ │ ├── 12.jpg │ │ │ └── Contents.json │ │ ├── C.imageset │ │ │ ├── 13.jpg │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── D.imageset │ │ │ ├── 14.jpg │ │ │ └── Contents.json │ │ ├── E.imageset │ │ │ ├── 15.jpg │ │ │ └── Contents.json │ │ └── F.imageset │ │ │ ├── 16.jpg │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── CollectionReusableView.h │ ├── CollectionReusableView.m │ ├── CollectionViewCell.h │ ├── CollectionViewCell.m │ ├── Info.plist │ ├── SimpleModel.h │ ├── SimpleModel.m │ ├── UIColor+RandomColor.h │ ├── UIColor+RandomColor.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── CollectionViewTests │ ├── CollectionViewTests.m │ └── Info.plist └── README.md ├── CoreAnimation ├── CoreAnimation.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── CoreAnimation │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Ball.imageset │ │ │ ├── Ball@2x.png │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── Door.imageset │ │ │ ├── Contents.json │ │ │ ├── Door.png │ │ │ └── Door@2x.png │ │ ├── RadialGradient.imageset │ │ │ ├── Contents.json │ │ │ ├── camera_flash_selected@2x.png │ │ │ └── camera_flash_selected@3x.png │ │ ├── Rounded.imageset │ │ │ ├── Contents.json │ │ │ └── Rounded@2x.png │ │ ├── Ship.imageset │ │ │ ├── Contents.json │ │ │ └── Ship@2x.png │ │ ├── Snowman.imageset │ │ │ ├── Contents.json │ │ │ └── Snowman@2x.png │ │ ├── Spark.imageset │ │ │ ├── Contents.json │ │ │ └── Spark.png │ │ └── balloon.imageset │ │ │ ├── Contents.json │ │ │ ├── balloon@2x.png │ │ │ └── balloon@3x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── BaseViewController.swift │ ├── Color.swift │ ├── DisplayLinkViewController.swift │ ├── ExplicitlyViewController.swift │ ├── Image │ │ ├── Snowman_00_00.jpg │ │ ├── Snowman_00_01.jpg │ │ ├── Snowman_00_02.jpg │ │ ├── Snowman_00_03.jpg │ │ ├── Snowman_00_04.jpg │ │ ├── Snowman_00_05.jpg │ │ ├── Snowman_00_06.jpg │ │ ├── Snowman_00_07.jpg │ │ ├── Snowman_01_00.jpg │ │ ├── Snowman_01_01.jpg │ │ ├── Snowman_01_02.jpg │ │ ├── Snowman_01_03.jpg │ │ ├── Snowman_01_04.jpg │ │ ├── Snowman_01_05.jpg │ │ ├── Snowman_01_06.jpg │ │ ├── Snowman_01_07.jpg │ │ ├── Snowman_02_00.jpg │ │ ├── Snowman_02_01.jpg │ │ ├── Snowman_02_02.jpg │ │ ├── Snowman_02_03.jpg │ │ ├── Snowman_02_04.jpg │ │ ├── Snowman_02_05.jpg │ │ ├── Snowman_02_06.jpg │ │ ├── Snowman_02_07.jpg │ │ ├── Snowman_03_00.jpg │ │ ├── Snowman_03_01.jpg │ │ ├── Snowman_03_02.jpg │ │ ├── Snowman_03_03.jpg │ │ ├── Snowman_03_04.jpg │ │ ├── Snowman_03_05.jpg │ │ ├── Snowman_03_06.jpg │ │ ├── Snowman_03_07.jpg │ │ ├── Snowman_04_00.jpg │ │ ├── Snowman_04_01.jpg │ │ ├── Snowman_04_02.jpg │ │ ├── Snowman_04_03.jpg │ │ ├── Snowman_04_04.jpg │ │ ├── Snowman_04_05.jpg │ │ ├── Snowman_04_06.jpg │ │ ├── Snowman_04_07.jpg │ │ ├── Snowman_05_00.jpg │ │ ├── Snowman_05_01.jpg │ │ ├── Snowman_05_02.jpg │ │ ├── Snowman_05_03.jpg │ │ ├── Snowman_05_04.jpg │ │ ├── Snowman_05_05.jpg │ │ ├── Snowman_05_06.jpg │ │ ├── Snowman_05_07.jpg │ │ ├── Snowman_06_00.jpg │ │ ├── Snowman_06_01.jpg │ │ ├── Snowman_06_02.jpg │ │ ├── Snowman_06_03.jpg │ │ ├── Snowman_06_04.jpg │ │ ├── Snowman_06_05.jpg │ │ ├── Snowman_06_06.jpg │ │ ├── Snowman_06_07.jpg │ │ ├── Snowman_07_00.jpg │ │ ├── Snowman_07_01.jpg │ │ ├── Snowman_07_02.jpg │ │ ├── Snowman_07_03.jpg │ │ ├── Snowman_07_04.jpg │ │ ├── Snowman_07_05.jpg │ │ ├── Snowman_07_06.jpg │ │ └── Snowman_07_07.jpg │ ├── ImageIOViewController.swift │ ├── Info.plist │ ├── Item.swift │ ├── LayerPerformanceViewController.swift │ ├── LayerTimeViewController.swift │ ├── LayersViewController.swift │ ├── Performance │ │ ├── Anchor.png │ │ ├── Cone.png │ │ ├── Igloo.png │ │ ├── Key.png │ │ ├── Man.png │ │ └── Spaceship.png │ ├── PerformanceViewController.swift │ ├── ReflectionView.swift │ ├── ReflectionViewController.swift │ ├── SceneDelegate.swift │ ├── ScrollView.swift │ ├── ShadowPathViewController.swift │ ├── TransformViewController.swift │ ├── Transition.swift │ ├── Vacation Photos │ │ ├── IMG_0150.png │ │ ├── IMG_0154.png │ │ ├── IMG_0163.png │ │ ├── IMG_0169.png │ │ ├── IMG_0170.png │ │ ├── IMG_0173.png │ │ ├── IMG_0174.png │ │ ├── IMG_0180.png │ │ ├── IMG_0181.png │ │ ├── IMG_0184.png │ │ └── IMG_0197.png │ └── ViewController.swift └── README.md ├── CoreGraphics-1 ├── CoreGraphics-1.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── CoreGraphics-1 │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── CounterView.swift │ ├── Info.plist │ ├── PushButton.swift │ ├── SceneDelegate.swift │ └── ViewController.swift └── README.md ├── CoreGraphics-2 ├── CoreGraphics-1.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── CoreGraphics-1 │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── GraphView.swift │ ├── Info.plist │ ├── Line&Arc │ │ ├── CounterView.swift │ │ └── PushButton.swift │ ├── SceneDelegate.swift │ └── ViewController.swift └── README.md ├── CoreGraphics-2模版 ├── CoreGraphics-1.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── CoreGraphics-1 │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── GraphView.swift │ ├── Info.plist │ ├── Line&Arc │ │ ├── CounterView.swift │ │ └── PushButton.swift │ ├── SceneDelegate.swift │ └── ViewController.swift └── README.md ├── CoreGraphics-3 ├── CoreGraphics-1.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── CoreGraphics-1 │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── BackgroundView.swift │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Gradient │ │ └── GraphView.swift │ ├── Info.plist │ ├── Line&Arc │ │ ├── CounterView.swift │ │ └── PushButton.swift │ ├── MedalDrawing.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ ├── playground.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── timeline.xctimeline │ ├── MedalView.swift │ ├── SceneDelegate.swift │ └── ViewController.swift └── README.md ├── Delegation&Notification ├── Delegation&Notification.xcodeproj │ ├── .xcodeSampleCode.plist │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ ├── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── darkgm.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ ├── ad.xcuserdatad │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ │ ├── Delegation&Notification.xcscheme │ │ │ └── xcschememanagement.plist │ │ └── darkgm.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── Delegation&Notification │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── SecondViewController.h │ ├── SecondViewController.m │ ├── ThirdViewController.h │ ├── ThirdViewController.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── Delegation&NotificationTests │ ├── Delegation_NotificationTests.m │ └── Info.plist └── README.md ├── Delegation&Notification模板 ├── Delegation&Notification.xcodeproj │ ├── .xcodeSampleCode.plist │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ ├── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── darkgm.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ ├── ad.xcuserdatad │ │ └── xcschemes │ │ │ ├── Delegation&Notification.xcscheme │ │ │ └── xcschememanagement.plist │ │ └── darkgm.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── Delegation&Notification │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── SecondViewController.h │ ├── SecondViewController.m │ ├── ThirdViewController.h │ ├── ThirdViewController.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── Delegation&NotificationTests │ ├── Delegation_NotificationTests.m │ └── Info.plist └── README.md ├── DependencyInversionPrinciple ├── DependencyInversionPrinciple.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── DependencyInversionPrinciple │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── Network.swift │ ├── Product.swift │ ├── SceneDelegate.swift │ └── ViewController.swift └── README.md ├── DisplayViewController ├── DisplayViewController.xcodeproj │ ├── .xcodesamplecode.plist │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcuserdata │ │ │ └── pro648.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── pro648.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── DisplayViewController │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── FirstVC.h │ ├── FirstVC.m │ ├── Info.plist │ ├── PresentedViewController.h │ ├── PresentedViewController.m │ ├── PresentingViewController.h │ ├── PresentingViewController.m │ ├── SecondVC.h │ ├── SecondVC.m │ └── main.m ├── DisplayViewControllerTests │ ├── DisplayViewControllerTests.m │ └── Info.plist └── README.md ├── FileManager ├── FileManager.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ └── xcschemes │ │ ├── FileManager.xcscheme │ │ └── xcschememanagement.plist ├── FileManager │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.h │ ├── ViewController.m │ └── main.m └── FileManagerTests │ ├── FileManagerTests.m │ └── Info.plist ├── GestureRecognizer ├── GestureRecognizer.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ └── xcschemes │ │ ├── GestureRecognizer.xcscheme │ │ └── xcschememanagement.plist ├── GestureRecognizer │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── first.imageset │ │ │ ├── Contents.json │ │ │ └── first.pdf │ │ └── second.imageset │ │ │ ├── Contents.json │ │ │ └── second.pdf │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── PanViewController.h │ ├── PanViewController.m │ ├── PinchViewController.h │ ├── PinchViewController.m │ ├── RotationViewController.h │ ├── RotationViewController.m │ ├── SwipeViewController.h │ ├── SwipeViewController.m │ ├── TapViewController.h │ ├── TapViewController.m │ └── main.m └── GestureRecognizerTests │ ├── GestureRecognizerTests.m │ └── Info.plist ├── GrandCentralDispatch ├── GrandCentralDispatch.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ ├── ad.xcuserdatad │ │ └── xcschemes │ │ │ └── xcschememanagement.plist │ │ └── pro648.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── GrandCentralDispatch.xcworkspace │ ├── .xcodesamplecode.plist │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ ├── ad.xcuserdatad │ │ └── UserInterfaceState.xcuserstate │ │ └── pro648.xcuserdatad │ │ ├── UserInterfaceState.xcuserstate │ │ └── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist ├── GrandCentralDispatch │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon-1024.png │ │ │ ├── icon-20-ipad.png │ │ │ ├── icon-20@2x-ipad.png │ │ │ ├── icon-20@2x.png │ │ │ ├── icon-20@3x.png │ │ │ ├── icon-29-ipad.png │ │ │ ├── icon-29@2x-ipad.png │ │ │ ├── icon-29@2x.png │ │ │ ├── icon-29@3x.png │ │ │ ├── icon-40.png │ │ │ ├── icon-40@2x-1.png │ │ │ ├── icon-40@2x.png │ │ │ ├── icon-40@3x.png │ │ │ ├── icon-60@2x.png │ │ │ ├── icon-60@3x.png │ │ │ ├── icon-76.png │ │ │ ├── icon-76@2x.png │ │ │ └── icon-83.5@2x.png │ │ ├── Contents.json │ │ ├── background.imageset │ │ │ ├── Contents.json │ │ │ ├── background.png │ │ │ └── background@2x.png │ │ ├── photoDownloadError.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_error.png │ │ │ ├── ic_error_2x.png │ │ │ └── ic_error_3x.png │ │ └── photoDownloading.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_insert_photo.png │ │ │ ├── ic_insert_photo_2x.png │ │ │ └── ic_insert_photo_3x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── CollectionViewController.h │ ├── CollectionViewController.m │ ├── DetailViewController.h │ ├── DetailViewController.m │ ├── Info.plist │ ├── PhotoManagement │ │ ├── Photo.h │ │ ├── Photo.m │ │ ├── PhotoManager.h │ │ └── PhotoManager.m │ ├── UIImageCategories │ │ ├── UIImage+Alpha.h │ │ ├── UIImage+Alpha.m │ │ ├── UIImage+Resize.h │ │ ├── UIImage+Resize.m │ │ ├── UIImage+RoundedCorner.h │ │ └── UIImage+RoundedCorner.m │ └── main.m ├── GrandCentralDispatchTests │ ├── GrandCentralDispatchTests.m │ └── Info.plist ├── Podfile ├── Podfile.lock └── README.md ├── GrandCentralDispatch模板 ├── GrandCentralDispatch.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ ├── ad.xcuserdatad │ │ └── xcschemes │ │ │ └── xcschememanagement.plist │ │ └── pro648.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── GrandCentralDispatch.xcworkspace │ ├── .xcodesamplecode.plist │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ ├── ad.xcuserdatad │ │ └── UserInterfaceState.xcuserstate │ │ └── pro648.xcuserdatad │ │ └── UserInterfaceState.xcuserstate ├── GrandCentralDispatch │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon-1024.png │ │ │ ├── icon-20-ipad.png │ │ │ ├── icon-20@2x-ipad.png │ │ │ ├── icon-20@2x.png │ │ │ ├── icon-20@3x.png │ │ │ ├── icon-29-ipad.png │ │ │ ├── icon-29@2x-ipad.png │ │ │ ├── icon-29@2x.png │ │ │ ├── icon-29@3x.png │ │ │ ├── icon-40.png │ │ │ ├── icon-40@2x-1.png │ │ │ ├── icon-40@2x.png │ │ │ ├── icon-40@3x.png │ │ │ ├── icon-60@2x.png │ │ │ ├── icon-60@3x.png │ │ │ ├── icon-76.png │ │ │ ├── icon-76@2x.png │ │ │ └── icon-83.5@2x.png │ │ ├── Contents.json │ │ ├── background.imageset │ │ │ ├── Contents.json │ │ │ ├── background.png │ │ │ └── background@2x.png │ │ ├── photoDownloadError.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_error.png │ │ │ ├── ic_error_2x.png │ │ │ └── ic_error_3x.png │ │ └── photoDownloading.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_insert_photo.png │ │ │ ├── ic_insert_photo_2x.png │ │ │ └── ic_insert_photo_3x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── CollectionViewController.h │ ├── CollectionViewController.m │ ├── DetailViewController.h │ ├── DetailViewController.m │ ├── Info.plist │ ├── PhotoManagement │ │ ├── Photo.h │ │ ├── Photo.m │ │ ├── PhotoManager.h │ │ └── PhotoManager.m │ ├── UIImageCategories │ │ ├── UIImage+Alpha.h │ │ ├── UIImage+Alpha.m │ │ ├── UIImage+Resize.h │ │ ├── UIImage+Resize.m │ │ ├── UIImage+RoundedCorner.h │ │ └── UIImage+RoundedCorner.m │ └── main.m ├── GrandCentralDispatchTests │ ├── GrandCentralDispatchTests.m │ └── Info.plist ├── Podfile ├── Podfile.lock └── README.md ├── ImageResizing ├── ImageResizing.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── ImageResizing │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── CoreGraphics.swift │ ├── CoreImage.swift │ ├── ImageIO.swift │ ├── Info.plist │ ├── SceneDelegate.swift │ ├── UIKit.swift │ ├── ViewController.swift │ ├── vImage.swift │ └── visibleEarth.jpg └── README.md ├── InterfaceSegregationPrinciple ├── InterfaceSegregationPrinciple.playground │ ├── Contents.swift │ ├── Sources │ │ ├── Document.swift │ │ ├── FaxMachine.swift │ │ ├── Machine.swift │ │ ├── NewIphone.swift │ │ ├── PDF.swift │ │ └── UltraIphone.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── README.md ├── IteratorPattern ├── IteratorPattern.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── IteratorPattern │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── Queue.swift │ ├── Ticket.swift │ └── ViewController.swift └── README.md ├── KVC&KVODemo ├── KVC&KVODemo.xcodeproj │ ├── .xcodeSampleCode.plist │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ └── xcschemes │ │ ├── KVC&KVODemo.xcscheme │ │ └── xcschememanagement.plist ├── KVC&KVODemo │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Children.h │ ├── Children.m │ ├── Info.plist │ ├── KVCMutableArray.h │ ├── KVCMutableArray.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── KVC&KVODemoTests │ ├── Info.plist │ └── KVC_KVODemoTests.m └── README.md ├── KVC&KVO的本质 ├── KVC&KVO的本质.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── KVC&KVO的本质 │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── KVC │ │ ├── Observer.h │ │ ├── Observer.m │ │ ├── Person.h │ │ └── Person.m │ ├── KVO │ │ ├── Child.h │ │ ├── Child.m │ │ ├── NSKVONotifying_Child.h │ │ └── NSKVONotifying_Child.m │ ├── SceneDelegate.h │ ├── SceneDelegate.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m └── README.md ├── KeyedArchiver ├── KeyedArchiver.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ └── xcschemes │ │ ├── KeyedArchiver.xcscheme │ │ └── xcschememanagement.plist ├── KeyedArchiver │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── Person.h │ ├── Person.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m └── KeyedArchiverTests │ ├── Info.plist │ └── KeyedArchiverTests.m ├── LinkedList ├── LinkedList.playground │ ├── Pages │ │ ├── Challenge 1.xcplaygroundpage │ │ │ └── Contents.swift │ │ ├── Challenge 2.xcplaygroundpage │ │ │ └── Contents.swift │ │ ├── Challenge 3.xcplaygroundpage │ │ │ └── Contents.swift │ │ ├── Challenge 4.xcplaygroundpage │ │ │ └── Contents.swift │ │ ├── Challenge 5.xcplaygroundpage │ │ │ └── Contents.swift │ │ └── Examples.xcplaygroundpage │ │ │ └── Contents.swift │ ├── Sources │ │ ├── Helpers.swift │ │ ├── LinkedList.swift │ │ └── Node.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── README.md ├── LiskovSubstitutionPrinciple ├── LiskovSubstitutionPrinciple.playground │ ├── Contents.swift │ ├── Sources │ │ ├── LSP&OCP │ │ │ ├── CircleShape.swift │ │ │ ├── Shape.swift │ │ │ ├── SquareShape.swift │ │ │ └── TriangleShape.swift │ │ └── LSP │ │ │ ├── Geometrics.swift │ │ │ ├── Rectangle.swift │ │ │ └── Square.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── README.md ├── MVVMPattern ├── MVVMPattern.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── MVVMPattern.xcworkspace │ └── contents.xcworkspacedata ├── MVVMPattern │ ├── AppDelegate │ │ └── AppDelegate.swift │ ├── Controllers │ │ └── ViewController.swift │ ├── Resources │ │ ├── APIKeys.swift │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ ├── Launch.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── Launch.png │ │ │ │ ├── Launch@2x.png │ │ │ │ └── Launch@3x.png │ │ │ ├── bad.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── bad.png │ │ │ │ ├── bad@2x.png │ │ │ │ └── bad@3x.png │ │ │ ├── good.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── good.png │ │ │ │ ├── good@2x.png │ │ │ │ └── good@3x.png │ │ │ ├── great.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── great.png │ │ │ │ ├── great@2x.png │ │ │ │ └── great@3x.png │ │ │ ├── meh.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── meh.png │ │ │ │ ├── meh@2x.png │ │ │ │ └── meh@3x.png │ │ │ └── terrible.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── terrible.png │ │ │ │ ├── terrible@2x.png │ │ │ │ └── terrible@3x.png │ │ └── Info.plist │ ├── ViewModels │ │ └── BusinessMapViewModel.swift │ └── Views │ │ └── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard ├── Podfile ├── Podfile.lock └── README.md ├── MVVMPattern模版 ├── MVVMPattern.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── MVVMPattern.xcworkspace │ └── contents.xcworkspacedata ├── MVVMPattern │ ├── AppDelegate │ │ └── AppDelegate.swift │ ├── Controllers │ │ └── ViewController.swift │ ├── Models │ │ └── MapPin.swift │ ├── Resources │ │ ├── APIKeys.swift │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ ├── Launch.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── Launch.png │ │ │ │ ├── Launch@2x.png │ │ │ │ └── Launch@3x.png │ │ │ ├── bad.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── bad.png │ │ │ │ ├── bad@2x.png │ │ │ │ └── bad@3x.png │ │ │ ├── good.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── good.png │ │ │ │ ├── good@2x.png │ │ │ │ └── good@3x.png │ │ │ ├── great.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── great.png │ │ │ │ ├── great@2x.png │ │ │ │ └── great@3x.png │ │ │ ├── meh.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── meh.png │ │ │ │ ├── meh@2x.png │ │ │ │ └── meh@3x.png │ │ │ └── terrible.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── terrible.png │ │ │ │ ├── terrible@2x.png │ │ │ │ └── terrible@3x.png │ │ └── Info.plist │ └── Views │ │ └── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard ├── Podfile ├── Podfile.lock └── README.md ├── MementoPattern ├── MementoPattern.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── README.md ├── Model-View-ViewModel ├── Model-View-ViewModel.playground │ ├── Contents.swift │ ├── Resources │ │ └── direwolf.png │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── README.md ├── NSCache ├── NSCache.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── NSCache │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── abc.imageset │ │ │ ├── Contents.json │ │ │ └── abc.jpeg │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Discardable │ │ ├── DiscardableViewController.swift │ │ └── Person.swift │ ├── ImageCache │ │ ├── ImageCache.swift │ │ └── LoadImageViewController.swift │ ├── Info.plist │ ├── SceneDelegate.swift │ └── ViewController.swift └── README.md ├── NSURLSession1 ├── NSURLSession1.xcodeproj │ ├── .xcodeSampleCode.plist │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ └── xcschemes │ │ ├── NSURLSession1.xcscheme │ │ └── xcschememanagement.plist ├── NSURLSession1 │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── NSURLSession1Tests │ ├── Info.plist │ └── NSURLSession1Tests.m └── README.md ├── Open-ClosedPrinciple ├── Open-ClosedPrinciple.playground │ ├── Contents.swift │ ├── Sources │ │ ├── Abstract.swift │ │ ├── Deeplink.swift │ │ └── OCP.swift │ ├── contents.xcplayground │ ├── playground.xcworkspace │ │ └── contents.xcworkspacedata │ └── timeline.xctimeline └── README.md ├── Operation&OperationQueue ├── Operation&OperationQueue.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── Operation&OperationQueue │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── 0.imageset │ │ │ ├── 1.jpg │ │ │ └── Contents.json │ │ ├── 1.imageset │ │ │ ├── 2.jpg │ │ │ └── Contents.json │ │ ├── 2.imageset │ │ │ ├── 3.jpg │ │ │ └── Contents.json │ │ ├── 3.imageset │ │ │ ├── 4.jpg │ │ │ └── Contents.json │ │ ├── 4.imageset │ │ │ ├── 5.jpg │ │ │ └── Contents.json │ │ ├── 5.imageset │ │ │ ├── 6.jpg │ │ │ └── Contents.json │ │ ├── 6.imageset │ │ │ ├── 7.jpg │ │ │ └── Contents.json │ │ ├── 7.imageset │ │ │ ├── 8.jpg │ │ │ └── Contents.json │ │ ├── 8.imageset │ │ │ ├── 9.jpg │ │ │ └── Contents.json │ │ ├── 9.imageset │ │ │ ├── 10.jpg │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── AsyncOperation.swift │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── FilterOperation.swift │ ├── ImageDataProvider.swift │ ├── Info.plist │ ├── NetworkImageOperation.swift │ ├── PhotoCell.swift │ ├── Photos.plist │ ├── SceneDelegate.swift │ ├── SepiaFilter.swift │ └── ViewController.swift └── README.md ├── PageViewController ├── PageViewController.xcodeproj │ ├── .xcodesamplecode.plist │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── PageViewController │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── DataViewController.h │ ├── DataViewController.m │ ├── Info.plist │ ├── Model.h │ ├── Model.m │ ├── RootViewController.h │ ├── RootViewController.m │ └── main.m ├── PageViewControllerTests │ ├── Info.plist │ └── PageViewControllerTests.m ├── PageViewControllerUITests │ ├── Info.plist │ └── PageViewControllerUITests.m └── README.md ├── PasswordAutoFill ├── PasswordAutofill.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── PasswordAutofill │ ├── API.swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── PasswordAutofill.entitlements │ └── ViewControllers │ │ ├── LoginViewController.swift │ │ ├── MotivationalViewController.swift │ │ ├── OneTimeCodeViewController.swift │ │ ├── ParentViewController.swift │ │ └── SignupViewController.swift └── README.md ├── PasswordAutoFill模版 ├── PasswordAutoFill-Server │ ├── Package.resolved │ ├── Package.swift │ ├── Procfile │ ├── Resources │ │ └── Views │ │ │ ├── base.leaf │ │ │ ├── changePassword.leaf │ │ │ ├── index.leaf │ │ │ ├── login.leaf │ │ │ └── register.leaf │ └── Sources │ │ ├── App │ │ ├── Controllers │ │ │ ├── APIController.swift │ │ │ └── WebsiteController.swift │ │ ├── Models │ │ │ ├── MotivationalLottery.swift │ │ │ ├── Token.swift │ │ │ └── User.swift │ │ ├── app.swift │ │ ├── boot.swift │ │ ├── configure.swift │ │ └── routes.swift │ │ └── Run │ │ └── main.swift ├── PasswordAutofill.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── PasswordAutofill │ ├── API.swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── PasswordAutofill.entitlements │ └── ViewControllers │ │ ├── LoginViewController.swift │ │ ├── MotivationalViewController.swift │ │ ├── OneTimeCodeViewController.swift │ │ ├── ParentViewController.swift │ │ └── SignupViewController.swift └── README.md ├── Persistence ├── Persistence.xcodeproj │ ├── .xcodesamplecode.plist │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ ├── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── darkgm.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ ├── ad.xcuserdatad │ │ └── xcschemes │ │ │ ├── Persistence.xcscheme │ │ │ └── xcschememanagement.plist │ │ └── darkgm.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── Persistence │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── PersistenceTests │ ├── Info.plist │ └── PersistenceTests.m └── README.md ├── PropertyAnimator ├── PropertyAnimator.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ └── xcschemes │ │ ├── PropertyAnimator.xcscheme │ │ └── xcschememanagement.plist ├── PropertyAnimator │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── first.imageset │ │ │ ├── Contents.json │ │ │ └── first.pdf │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── TimingCurvesViewController.h │ ├── TimingCurvesViewController.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m └── PropertyAnimatorTests │ ├── Info.plist │ └── PropertyAnimatorTests.m ├── ProtocolAndGeneric ├── ProtocolAndGeneric.playground │ ├── Contents.swift │ ├── Sources │ │ └── Mems.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── README.md ├── ProtocolOrientedProgramming ├── ProtocolOrientedProgramming.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── README.md ├── PrototypePattern ├── PrototypePattern.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── PrototypePattern │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Copying.swift │ ├── EyeballMonster.swift │ ├── Info.plist │ ├── Monster.swift │ └── ViewController.swift └── README.md ├── Queue ├── Queue.playground │ ├── Pages │ │ ├── Challenge 1.xcplaygroundpage │ │ │ └── Contents.swift │ │ ├── Challenge 2.xcplaygroundpage │ │ │ ├── Contents.swift │ │ │ └── Sources │ │ │ │ └── Stack.swift │ │ ├── Challenge 3.xcplaygroundpage │ │ │ └── Contents.swift │ │ └── Examples.xcplaygroundpage │ │ │ └── Contents.swift │ ├── Sources │ │ ├── DoubleLinkedList.swift │ │ ├── Queue.swift │ │ ├── QueueArray.swift │ │ ├── QueueLinkedList.swift │ │ ├── QueueRingBuffer.swift │ │ └── QueueStack.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── README.md ├── README.md ├── RefreshControl ├── README.md ├── RefreshControl.xcodeproj │ ├── .xcodeSampleCode.plist │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ └── xcschemes │ │ ├── RefreshControl.xcscheme │ │ └── xcschememanagement.plist ├── RefreshControl │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.h │ ├── ViewController.m │ └── main.m └── RefreshControlTests │ ├── Info.plist │ └── RefreshControlTests.m ├── RegularExpression ├── README.md ├── RegularExpression.xcodeproj │ ├── .xcodeSampleCode.plist │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── RegularExpression.xcscheme │ │ └── xcschememanagement.plist ├── RegularExpression │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── checkmark.imageset │ │ │ ├── Contents.json │ │ │ ├── checkmark.png │ │ │ └── checkmark@2x.png │ │ ├── exclamation.imageset │ │ │ ├── Contents.json │ │ │ ├── exclamation.png │ │ │ └── exclamation@2x.png │ │ ├── first.imageset │ │ │ ├── Contents.json │ │ │ └── first.pdf │ │ └── second.imageset │ │ │ ├── Contents.json │ │ │ └── second.pdf │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── FirstViewController.h │ ├── FirstViewController.m │ ├── Info.plist │ ├── SearchViewController.h │ ├── SearchViewController.m │ ├── SecondViewController.h │ ├── SecondViewController.m │ ├── ThirdViewController.h │ ├── ThirdViewController.m │ └── main.m └── RegularExpressionTests │ ├── Info.plist │ └── RegularExpressionTests.m ├── RegularExpression模板 ├── README.md ├── RegularExpression.xcodeproj │ ├── .xcodeSampleCode.plist │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── RegularExpression.xcscheme │ │ └── xcschememanagement.plist ├── RegularExpression │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── checkmark.imageset │ │ │ ├── Contents.json │ │ │ ├── checkmark.png │ │ │ └── checkmark@2x.png │ │ ├── exclamation.imageset │ │ │ ├── Contents.json │ │ │ ├── exclamation.png │ │ │ └── exclamation@2x.png │ │ ├── first.imageset │ │ │ ├── Contents.json │ │ │ └── first.pdf │ │ └── second.imageset │ │ │ ├── Contents.json │ │ │ └── second.pdf │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── FirstViewController.h │ ├── FirstViewController.m │ ├── Info.plist │ ├── SearchViewController.h │ ├── SearchViewController.m │ ├── SecondViewController.h │ ├── SecondViewController.m │ ├── ThirdViewController.h │ ├── ThirdViewController.m │ └── main.m └── RegularExpressionTests │ ├── Info.plist │ └── RegularExpressionTests.m ├── ResponderChain ├── README.md ├── ResponderChain.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── ResponderChain │ ├── Animation │ ├── AnimatedView.swift │ └── AnimationViewController.swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── FindFirstResponder │ ├── FindResponderVC.swift │ ├── ViewA.swift │ ├── ViewA1.swift │ ├── ViewA2.swift │ ├── ViewB.swift │ ├── ViewB1.swift │ ├── ViewB2.swift │ ├── ViewC.swift │ ├── ViewC1.swift │ └── ViewC2.swift │ ├── Hit-TestingImplementation.swift │ ├── HitTestSlop │ ├── ButtonViewController.swift │ └── HitTestSlop.swift │ ├── Info.plist │ ├── Item.swift │ ├── MethodSwizzling.swift │ ├── RouterEvent │ ├── Router.swift │ ├── RouterEventCell.swift │ └── RouterEventVC.swift │ ├── SceneDelegate.swift │ ├── Trangle │ ├── TriangleView.swift │ └── TriangleViewController.swift │ └── ViewController.swift ├── RunLoop ├── README.md ├── RunLoop.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── RunLoop │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── PermanentThread.h │ ├── PermanentThread.m │ ├── SceneDelegate.h │ ├── SceneDelegate.m │ ├── SecViewController.h │ ├── SecViewController.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── Runtime ├── README.md ├── Runtime.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── Runtime │ ├── AllocateClass │ ├── AllocateClass.h │ └── AllocateClass.m │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── AssociatedObjects │ ├── UIView+DefaultColor.h │ └── UIView+DefaultColor.m │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Engineer.h │ ├── Engineer.m │ ├── Exchange │ ├── NSMutableArray+Extension.h │ ├── NSMutableArray+Extension.m │ ├── PremiumUser.h │ ├── PremiumUser.m │ ├── UIControl+Extension.h │ ├── UIControl+Extension.m │ ├── User.h │ └── User.m │ ├── Info.plist │ ├── Person.h │ ├── Person.m │ ├── Q&A │ ├── Browser.h │ ├── Browser.m │ ├── Safari.h │ └── Safari.m │ ├── SceneDelegate.h │ ├── SceneDelegate.m │ ├── Student.h │ ├── Student.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── SQLite ├── README.md ├── SQLite.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── SQLite │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Contact.swift │ ├── DetailViewController.swift │ ├── Info.plist │ ├── SQLiteManager.swift │ ├── SceneDelegate.swift │ └── ViewController.swift ├── ScrollView ├── README.md ├── ScrollView.xcodeproj │ ├── .xcodeSampleCode.plist │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── ScrollView.xcscheme │ │ └── xcschememanagement.plist ├── ScrollView │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── five.imageset │ │ │ ├── Contents.json │ │ │ └── small_five.png │ │ ├── four.imageset │ │ │ ├── Contents.json │ │ │ └── small_four.png │ │ ├── image.imageset │ │ │ ├── Contents.json │ │ │ └── image.png │ │ ├── one.imageset │ │ │ ├── Contents.json │ │ │ └── small_one.png │ │ ├── six.imageset │ │ │ ├── Contents.json │ │ │ └── small_six.png │ │ ├── three.imageset │ │ │ ├── Contents.json │ │ │ └── small_three.png │ │ └── two.imageset │ │ │ ├── Contents.json │ │ │ └── small_two.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── PageViewController.h │ ├── PageViewController.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m └── ScrollViewTests │ ├── Info.plist │ └── ScrollViewTests.m ├── SimpleFactory ├── README.md ├── SimpleFactory.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── SimpleFactory │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Email.swift │ ├── EmailFactory.swift │ ├── Info.plist │ ├── JobApplicant.swift │ └── ViewController.swift ├── Stack ├── README.md └── Stack.playground │ ├── Contents.swift │ ├── Sources │ ├── Helpers.swift │ └── Stack.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ └── contents.xcworkspacedata ├── StackView ├── StackView.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ └── xcschemes │ │ ├── StackView.xcscheme │ │ └── xcschememanagement.plist ├── StackView │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── Heart.imageset │ │ │ ├── Contents.json │ │ │ ├── heart120.png │ │ │ ├── heart240.png │ │ │ └── heart360.png │ │ ├── Star.imageset │ │ │ ├── Contents.json │ │ │ ├── star120.png │ │ │ ├── star240.png │ │ │ └── star360.png │ │ ├── filledStar.imageset │ │ │ ├── Contents.json │ │ │ └── star.png │ │ ├── first.imageset │ │ │ ├── Contents.json │ │ │ └── first.pdf │ │ ├── icon.imageset │ │ │ ├── Contents.json │ │ │ └── icon.png │ │ └── second.imageset │ │ │ ├── Contents.json │ │ │ └── second.pdf │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── FirstViewController.h │ ├── FirstViewController.m │ ├── Info.plist │ ├── ThirdViewController.h │ ├── ThirdViewController.m │ └── main.m └── StackViewTests │ ├── Info.plist │ └── StackViewTests.m ├── StrategyPattern ├── README.md ├── StrategyPattern.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── StrategyPattern │ ├── AppDelegate │ └── AppDelegate.swift │ ├── Controller │ ├── ShoppingCartViewController.swift │ └── TotalPriceViewController.swift │ ├── Model │ └── Meal.swift │ ├── Resource │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── delivery.imageset │ │ │ ├── Contents.json │ │ │ └── delivery.png │ │ ├── meal1.imageset │ │ │ ├── Contents.json │ │ │ └── meal1.png │ │ └── meal2.imageset │ │ │ ├── Contents.json │ │ │ └── meal3.png │ └── Info.plist │ ├── Strategy │ ├── CalendarSelectionStrategy.swift │ ├── CheckoutStrategy.swift │ ├── DiscountStrategy.swift │ ├── FreeShippingStrategy.swift │ └── NormalPriceStrategy.swift │ └── View │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ └── MealTableViewCell.swift ├── SwiftPointer ├── README.md └── SwiftPointer.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ └── contents.xcworkspacedata ├── Synchronization ├── README.md ├── Synchronization.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── Synchronization │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── BaseDemo.swift │ ├── BaseDemo2.h │ ├── BaseDemo2.m │ ├── Condition │ ├── ConditionMutexDemo.swift │ ├── NSConditionDemo.swift │ └── NSConditionLockDemo.swift │ ├── Info.plist │ ├── Mutex │ ├── NSLockDemo.swift │ └── NormalMutexDemo.swift │ ├── OSSpinLockDemo.swift │ ├── OSUnfairLockDemo.swift │ ├── ReadWrite │ ├── BarrierQueueDemo.swift │ └── RwriteLockDemo.swift │ ├── Recursive │ ├── NSRecursiveLockDemo.swift │ └── RecursiveMutexDemo.swift │ ├── SceneDelegate.swift │ ├── SemaphoreDemo.swift │ ├── SerialQueueDemo.swift │ ├── Synchronization-Bridging-Header.h │ ├── SynchronizedDemo.h │ ├── SynchronizedDemo.m │ └── ViewController.swift ├── Timer ├── Timer.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── Timer │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ ├── rw-dark.colorset │ │ └── Contents.json │ ├── rw-green.colorset │ │ └── Contents.json │ └── rw-light.colorset │ │ └── Contents.json │ ├── Balloon.swift │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── SceneDelegate.swift │ ├── Task.swift │ ├── TaskTableViewCell.swift │ └── ViewController.swift ├── Timer模版 ├── README.md ├── Timer.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── Timer │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ ├── rw-dark.colorset │ │ └── Contents.json │ ├── rw-green.colorset │ │ └── Contents.json │ └── rw-light.colorset │ │ └── Contents.json │ ├── Balloon.swift │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── SceneDelegate.swift │ ├── Task.swift │ ├── TaskTableViewCell.swift │ └── ViewController.swift ├── TransitionAnimation ├── README.md ├── TransitionAnimation.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── TransitionAnimation │ ├── Animator │ ├── DismissAnimationController.swift │ ├── PresentAnimationController.swift │ └── SwipeInteractionController.swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ ├── back_cat.imageset │ │ ├── Contents.json │ │ ├── wiggles@2x.jpeg │ │ └── wiggles@3x.jpeg │ ├── boring_fish.imageset │ │ ├── Contents.json │ │ ├── bongo@2x.jpeg │ │ └── bongo@3x.jpeg │ ├── epic_dog.imageset │ │ ├── Contents.json │ │ ├── wrigley@2x.jpeg │ │ └── wrigley@3x.jpeg │ ├── rw-logo.imageset │ │ ├── Contents.json │ │ └── Razewarelogo_1024.png │ ├── rwdevcon-bg.imageset │ │ ├── Contents.json │ │ └── rwdevcon-bg.png │ ├── sad_dog.imageset │ │ ├── Contents.json │ │ ├── rufus@2x.jpeg │ │ └── rufus@3x.jpeg │ └── sleepy_cat.imageset │ │ ├── Contents.json │ │ ├── rumble@2x.jpeg │ │ └── rumble@3x.jpeg │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Data │ ├── PetCardStore.swift │ └── Pets.plist │ ├── Helper │ └── AnimationHelper.swift │ ├── Info.plist │ ├── Model │ └── PetCard.swift │ ├── SceneDelegate.swift │ └── ViewControllers │ ├── CardViewController.swift │ ├── RevealViewController.swift │ └── ViewController.swift ├── TransitionAnimation模版 ├── README.md ├── TransitionAnimation.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── TransitionAnimation │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ ├── back_cat.imageset │ │ ├── Contents.json │ │ ├── wiggles@2x.jpeg │ │ └── wiggles@3x.jpeg │ ├── boring_fish.imageset │ │ ├── Contents.json │ │ ├── bongo@2x.jpeg │ │ └── bongo@3x.jpeg │ ├── epic_dog.imageset │ │ ├── Contents.json │ │ ├── wrigley@2x.jpeg │ │ └── wrigley@3x.jpeg │ ├── rw-logo.imageset │ │ ├── Contents.json │ │ └── Razewarelogo_1024.png │ ├── rwdevcon-bg.imageset │ │ ├── Contents.json │ │ └── rwdevcon-bg.png │ ├── sad_dog.imageset │ │ ├── Contents.json │ │ ├── rufus@2x.jpeg │ │ └── rufus@3x.jpeg │ └── sleepy_cat.imageset │ │ ├── Contents.json │ │ ├── rumble@2x.jpeg │ │ └── rumble@3x.jpeg │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Data │ ├── PetCardStore.swift │ └── Pets.plist │ ├── Helper │ └── AnimationHelper.swift │ ├── Info.plist │ ├── Model │ └── PetCard.swift │ ├── SceneDelegate.swift │ └── ViewControllers │ ├── CardViewController.swift │ ├── RevealViewController.swift │ └── ViewController.swift ├── Tree ├── GeneralPurposeTree.playground │ ├── Pages │ │ ├── Tree.xcplaygroundpage │ │ │ └── Contents.swift │ │ └── 按层打印.xcplaygroundpage │ │ │ └── Contents.swift │ ├── Sources │ │ ├── Helpers.swift │ │ ├── Queue.swift │ │ └── TreeNode.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── README.md ├── UIKitDynamics ├── README.md ├── UIKitDynamics.xcodeproj │ ├── .xcodeSampleCode.plist │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── ad.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── UIKitDynamics.xcscheme │ │ └── xcschememanagement.plist ├── UIKitDynamics │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── AppleLogo.imageset │ │ │ ├── AppleLogo.jpg │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── circle.imageset │ │ │ ├── Contents.json │ │ │ └── first.pdf │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── FifthViewController.h │ ├── FifthViewController.m │ ├── FirstViewController.h │ ├── FirstViewController.m │ ├── FourthViewController.h │ ├── FourthViewController.m │ ├── Info.plist │ ├── SecondViewController.h │ ├── SecondViewController.m │ ├── TabBarController.h │ ├── TabBarController.m │ ├── ThirdViewController.h │ ├── ThirdViewController.m │ └── main.m └── UIKitDynamicsTests │ ├── Info.plist │ └── UIKitDynamicsTests.m ├── URLSession ├── README.md ├── URLSession.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── URLSession │ ├── AppDelegate.swift │ ├── Models │ ├── MusicItem.swift │ ├── Tracks.swift │ └── VideoItem.swift │ ├── Networking │ ├── BackgroundDownloadContext.swift │ ├── BackgroundDownloadService.swift │ ├── DownloadService.swift │ └── QueryService.swift │ ├── Other │ └── RetrieveCacheURL.swift │ ├── Resources │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── first.imageset │ │ │ ├── Contents.json │ │ │ └── first.pdf │ │ └── second.imageset │ │ │ ├── Contents.json │ │ │ └── second.pdf │ ├── Info.plist │ └── media.json │ ├── ViewControllers │ ├── BackgroundDownloadViewController.swift │ └── SearchViewController.swift │ └── Views │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── TrackCell.swift │ └── VideoCell.swift ├── UserNotifications ├── Objective-C │ ├── NotificationContent │ │ ├── Base.lproj │ │ │ └── MainInterface.storyboard │ │ ├── Info.plist │ │ ├── NotificationViewController.h │ │ └── NotificationViewController.m │ ├── NotificationService │ │ ├── Info.plist │ │ ├── NotificationService.h │ │ └── NotificationService.m │ ├── UserNotifications Objective-C.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── UserNotifications Objective-C │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── DetailViewControllers │ │ ├── CalendarViewController.h │ │ ├── CalendarViewController.m │ │ ├── LocationViewController.h │ │ ├── LocationViewController.m │ │ ├── TimeIntervalViewController.h │ │ └── TimeIntervalViewController.m │ │ ├── Info.plist │ │ ├── NotificationHandler.h │ │ ├── NotificationHandler.m │ │ ├── TableViewController.h │ │ ├── TableViewController.m │ │ ├── UserNotifications Objective-C.entitlements │ │ └── main.m ├── README.md └── Swift │ ├── NotificationContent │ ├── Base.lproj │ │ └── MainInterface.storyboard │ ├── Info.plist │ └── NotificationViewController.swift │ ├── NotificationService │ ├── Info.plist │ └── NotificationService.swift │ ├── UserNotification Swift.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── UserNotification Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── DetailViewControllers │ ├── CalendarViewController.swift │ ├── LocationViewController.swift │ └── TimeIntervalViewController.swift │ ├── Info.plist │ ├── NotificationHandler.swift │ ├── TableViewController.swift │ └── UserNotification Swift.entitlements ├── VisualEffectView ├── README.md ├── VisualEffectView.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── VisualEffectView │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── SceneDelegate.swift │ └── ViewController.swift ├── WebKit ├── README.md ├── WebKit.xcodeproj │ ├── .xcodesamplecode.plist │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── WebKit │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── NavigationDelegateHandler │ ├── NavigationDelegateHandler.h │ └── NavigationDelegateHandler.m │ ├── Resourece │ ├── NSHipster │ │ ├── WKWebView - NSHipster.htm │ │ ├── application-dc6f7717bbdcd904bb07dc6a415f4ca0cd3cd82b5cba668ecf8fb12894a3cbc1.js │ │ ├── mattt-93904827ef54896bb67f3a0d4abf548b9ecc93a51536bbc3326f24630512727d.jpg │ │ └── tracker.js │ └── web.htm │ ├── ScriptMessageHandler │ ├── ContentsViewController.h │ ├── ContentsViewController.m │ ├── Entry.h │ ├── Entry.m │ ├── ScriptMessageHandler.h │ ├── ScriptMessageHandler.m │ ├── fetch.js │ └── hide.js │ ├── UIDelegateHandler │ ├── UIDelegateHandler.h │ └── UIDelegateHandler.m │ ├── URLSchemeHandler │ ├── ImagePicker.h │ ├── ImagePicker.m │ ├── URLSchemeHandler.h │ ├── URLSchemeHandler.m │ └── customScheme.htm │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── Widget ├── Objective-C │ ├── UsedSpaceWidget │ │ ├── Base.lproj │ │ │ └── MainInterface.storyboard │ │ ├── Info.plist │ │ ├── TodayViewController.h │ │ ├── TodayViewController.m │ │ └── UsedSpaceWidget.entitlements │ ├── Widget Objective-C.xcodeproj │ │ ├── .xcodesamplecode.plist │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── Widget Objective-C │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── first.imageset │ │ │ ├── Contents.json │ │ │ └── first.pdf │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── FirstVC.h │ │ ├── FirstVC.m │ │ ├── Info.plist │ │ ├── SecondVC.h │ │ ├── SecondVC.m │ │ ├── Widget Objective-C.entitlements │ │ └── main.m ├── README.md └── Swift │ ├── UsedSpaceWidget │ ├── Base.lproj │ │ └── MainInterface.storyboard │ ├── Info.plist │ ├── TodayViewController.swift │ └── UsedSpaceWidget.entitlements │ ├── Widget Swift.xcodeproj │ ├── .xcodesamplecode.plist │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── Widget Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ └── first.imageset │ │ ├── Contents.json │ │ └── first.pdf │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── FirstVC.swift │ ├── Info.plist │ ├── SecondVC.swift │ └── Widget Swift.entitlements ├── category、load、initialize的本质 ├── README.md ├── category、load、initialize的本质.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── category、load、initialize的本质 │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Category │ ├── Child+Test1.cpp │ ├── Child+Test1.h │ ├── Child+Test1.m │ ├── Child+Test2.cpp │ ├── Child+Test2.h │ ├── Child+Test2.m │ ├── Child.h │ └── Child.m │ ├── Info.plist │ ├── Load&Initialize │ ├── Cat.h │ ├── Cat.m │ ├── Dog.h │ ├── Dog.m │ ├── Person+Test1.h │ ├── Person+Test1.m │ ├── Person+Test2.h │ ├── Person+Test2.m │ ├── Person.h │ ├── Person.m │ ├── Student+Test1.h │ ├── Student+Test1.m │ ├── Student+Test2.h │ ├── Student+Test2.m │ ├── Student.h │ └── Student.m │ ├── SceneDelegate.h │ ├── SceneDelegate.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m └── copy&mutableCopy ├── README.md ├── copy&mutableCopy.xcodeproj ├── .xcodesamplecode.plist ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── ad.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── ad.xcuserdatad │ ├── xcdebugger │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ ├── copy&mutableCopy.xcscheme │ └── xcschememanagement.plist ├── copy&mutableCopy ├── AppDelegate.h ├── AppDelegate.m ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Info.plist ├── Person.h ├── Person.m ├── ViewController.h ├── ViewController.m └── main.m └── copy&mutableCopyTests ├── Info.plist └── copy_mutableCopyTests.m /AVLTree/AVLTree.playground/Sources/Helpers.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public func example(of description: String, action: () -> Void) { 4 | print("--- Example of \(description) ---") 5 | action() 6 | print() 7 | } 8 | -------------------------------------------------------------------------------- /AVLTree/AVLTree.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /AVLTree/AVLTree.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AVLTree/README.md: -------------------------------------------------------------------------------- 1 | ### AVL 树 2 | 3 | AVL 树和二叉搜索树有很多共同点,只是 AVL 树增加了自平衡的部分。 4 | 5 | 通过旋转 AVL 树恢复平衡,旋转有左旋、右旋两种。共有四种类型失衡:LL型、RR型、LR型、RL型。 6 | 7 | 详细介绍查看下面文章: 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /AbstractFactory/AbstractFactory.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AbstractFactory/AbstractFactory/Alert.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Alert.swift 3 | // AbstractFactory 4 | // 5 | // Created by pro648 on 2019/7/19. 6 | // Copyright © 2019 pro648. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol Alert { 12 | func setTitle(_ title: String) -> Void 13 | func show() -> Void 14 | } 15 | -------------------------------------------------------------------------------- /AbstractFactory/AbstractFactory/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /AbstractFactory/AbstractFactory/Button.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Button.swift 3 | // AbstractFactory 4 | // 5 | // Created by pro648 on 2019/7/19. 6 | // Copyright © 2019 pro648. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol Button { 12 | func setTitle(_ title: String) -> Void 13 | func show() -> Void 14 | } 15 | -------------------------------------------------------------------------------- /AdapterPattern/AdapterPattern.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AdapterPattern/AdapterPattern/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /AlertController/AlertController.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AlertController/AlertController.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/AlertController/AlertController.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /AlertController/AlertController/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // AlertController 4 | // 5 | // Created by ad on 10/03/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /AlertController/AlertController/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // AlertController 4 | // 5 | // Created by ad on 10/03/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /AssociatedObject/AssociatedObject.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AssociatedObject/AssociatedObject/Child.m: -------------------------------------------------------------------------------- 1 | // 2 | // Child.m 3 | // AssociatedObject 4 | // 5 | // Created by pro648 on 2021/2/2. 6 | // 7 | 8 | #import "Child.h" 9 | 10 | @implementation Child 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /AutoLayout/AutoLayout.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AutoLayout/AutoLayout.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/AutoLayout/AutoLayout.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /AutoLayout/AutoLayout/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // AutoLayout 4 | // 5 | // Created by ad on 04/04/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /AutoLayout/AutoLayout/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // AutoLayout 4 | // 5 | // Created by ad on 04/04/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Autoclosure/Autoclosure.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Autoclosure/Autoclosure.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Autoclosure/README.md: -------------------------------------------------------------------------------- 1 | ### @autoclosure的使用 2 | 3 | 函数参数可以使用返回值类型相同的无参闭包替换。这种类型的闭包可以使用`@autoclosure`标记。使用`@autoclosure`标记后,闭包前后不需要添加大括号,自动闭包会自动添加大括号。使用`@autoclosure`标记后,传入的函数不会立即执行,会延迟到函数体内调用才执行。 4 | 5 | 详细介绍查看下面文章: 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /BinarySearch/BinarySearch.playground/Sources/Helpers.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public func example(of description: String, action: () -> Void) { 4 | print("--- Example of \(description) ---") 5 | action() 6 | print() 7 | } 8 | -------------------------------------------------------------------------------- /BinarySearch/BinarySearch.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /BinarySearchTree/BinarySearchTree.playground/Sources/Helpers.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public func example(of description: String, action: () -> Void) { 4 | print("--- Example of \(description) ---") 5 | action() 6 | print() 7 | } 8 | -------------------------------------------------------------------------------- /BinarySearchTree/BinarySearchTree.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /BinaryTree/BinaryTree.playground/Sources/Helpers.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public func example(of description: String, action: () -> Void) { 4 | print("--- Example of \(description) ---") 5 | action() 6 | print() 7 | } 8 | -------------------------------------------------------------------------------- /BinaryTree/BinaryTree.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Block/Block.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Block/Block.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Block/Block.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Block/Block.xcodeproj/xcuserdata/ad.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Block/Block/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Block 4 | // 5 | // Created by ad on 08/06/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Block/Block/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // Block 4 | // 5 | // Created by ad on 08/06/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | int gGlobalVar = 5; 12 | 13 | @interface ViewController : UIViewController 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /BuilderPattern/BuilderPattern.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /BuilderPattern/BuilderPattern/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /CollectionView/CollectionView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CollectionView/CollectionView.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CollectionView/CollectionView.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /CollectionView/CollectionView/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // CollectionView 4 | // 5 | // Created by ad on 08/12/2017. 6 | // 7 | 8 | #import 9 | 10 | @interface AppDelegate : UIResponder 11 | 12 | @property (strong, nonatomic) UIWindow *window; 13 | 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /CollectionView/CollectionView/Assets.xcassets/1.imageset/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CollectionView/CollectionView/Assets.xcassets/1.imageset/1.jpg -------------------------------------------------------------------------------- /CollectionView/CollectionView/Assets.xcassets/2.imageset/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CollectionView/CollectionView/Assets.xcassets/2.imageset/2.jpg -------------------------------------------------------------------------------- /CollectionView/CollectionView/Assets.xcassets/3.imageset/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CollectionView/CollectionView/Assets.xcassets/3.imageset/3.jpg -------------------------------------------------------------------------------- /CollectionView/CollectionView/Assets.xcassets/4.imageset/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CollectionView/CollectionView/Assets.xcassets/4.imageset/4.jpg -------------------------------------------------------------------------------- /CollectionView/CollectionView/Assets.xcassets/5.imageset/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CollectionView/CollectionView/Assets.xcassets/5.imageset/5.jpg -------------------------------------------------------------------------------- /CollectionView/CollectionView/Assets.xcassets/6.imageset/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CollectionView/CollectionView/Assets.xcassets/6.imageset/6.jpg -------------------------------------------------------------------------------- /CollectionView/CollectionView/Assets.xcassets/A.imageset/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CollectionView/CollectionView/Assets.xcassets/A.imageset/11.jpg -------------------------------------------------------------------------------- /CollectionView/CollectionView/Assets.xcassets/B.imageset/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CollectionView/CollectionView/Assets.xcassets/B.imageset/12.jpg -------------------------------------------------------------------------------- /CollectionView/CollectionView/Assets.xcassets/C.imageset/13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CollectionView/CollectionView/Assets.xcassets/C.imageset/13.jpg -------------------------------------------------------------------------------- /CollectionView/CollectionView/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /CollectionView/CollectionView/Assets.xcassets/D.imageset/14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CollectionView/CollectionView/Assets.xcassets/D.imageset/14.jpg -------------------------------------------------------------------------------- /CollectionView/CollectionView/Assets.xcassets/E.imageset/15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CollectionView/CollectionView/Assets.xcassets/E.imageset/15.jpg -------------------------------------------------------------------------------- /CollectionView/CollectionView/Assets.xcassets/F.imageset/16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CollectionView/CollectionView/Assets.xcassets/F.imageset/16.jpg -------------------------------------------------------------------------------- /CollectionView/CollectionView/CollectionReusableView.h: -------------------------------------------------------------------------------- 1 | // 2 | // CollectionReusableView.h 3 | // CollectionView 4 | // 5 | // Created by ad on 08/12/2017. 6 | // 7 | 8 | #import 9 | 10 | @interface CollectionReusableView : UICollectionReusableView 11 | 12 | @property (strong, nonatomic) UILabel *label; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /CollectionView/CollectionView/SimpleModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // SimpleModel.h 3 | // CollectionView 4 | // 5 | // Created by ad on 12/12/2017. 6 | // 7 | 8 | #import 9 | 10 | @interface SimpleModel : NSObject 11 | 12 | @property (strong, nonatomic) NSMutableArray *model; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /CollectionView/CollectionView/UIColor+RandomColor.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+RandomColor.h 3 | // CollectionView 4 | // 5 | // Created by ad on 08/12/2017. 6 | // 7 | 8 | #import 9 | 10 | @interface UIColor (RandomColor) 11 | 12 | + (UIColor *)randomColor; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /CollectionView/CollectionView/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // CollectionView 4 | // 5 | // Created by ad on 08/12/2017. 6 | // 7 | 8 | #import 9 | 10 | @interface ViewController : UIViewController 11 | 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Assets.xcassets/Ball.imageset/Ball@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Assets.xcassets/Ball.imageset/Ball@2x.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Assets.xcassets/Door.imageset/Door.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Assets.xcassets/Door.imageset/Door.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Assets.xcassets/Door.imageset/Door@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Assets.xcassets/Door.imageset/Door@2x.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Assets.xcassets/RadialGradient.imageset/camera_flash_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Assets.xcassets/RadialGradient.imageset/camera_flash_selected@2x.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Assets.xcassets/RadialGradient.imageset/camera_flash_selected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Assets.xcassets/RadialGradient.imageset/camera_flash_selected@3x.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Assets.xcassets/Rounded.imageset/Rounded@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Assets.xcassets/Rounded.imageset/Rounded@2x.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Assets.xcassets/Ship.imageset/Ship@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Assets.xcassets/Ship.imageset/Ship@2x.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Assets.xcassets/Snowman.imageset/Snowman@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Assets.xcassets/Snowman.imageset/Snowman@2x.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Assets.xcassets/Spark.imageset/Spark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Assets.xcassets/Spark.imageset/Spark.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Assets.xcassets/balloon.imageset/balloon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Assets.xcassets/balloon.imageset/balloon@2x.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Assets.xcassets/balloon.imageset/balloon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Assets.xcassets/balloon.imageset/balloon@3x.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_00_00.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_00_00.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_00_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_00_01.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_00_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_00_02.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_00_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_00_03.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_00_04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_00_04.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_00_05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_00_05.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_00_06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_00_06.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_00_07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_00_07.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_01_00.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_01_00.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_01_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_01_01.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_01_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_01_02.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_01_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_01_03.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_01_04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_01_04.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_01_05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_01_05.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_01_06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_01_06.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_01_07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_01_07.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_02_00.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_02_00.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_02_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_02_01.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_02_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_02_02.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_02_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_02_03.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_02_04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_02_04.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_02_05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_02_05.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_02_06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_02_06.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_02_07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_02_07.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_03_00.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_03_00.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_03_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_03_01.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_03_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_03_02.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_03_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_03_03.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_03_04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_03_04.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_03_05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_03_05.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_03_06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_03_06.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_03_07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_03_07.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_04_00.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_04_00.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_04_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_04_01.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_04_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_04_02.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_04_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_04_03.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_04_04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_04_04.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_04_05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_04_05.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_04_06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_04_06.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_04_07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_04_07.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_05_00.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_05_00.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_05_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_05_01.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_05_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_05_02.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_05_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_05_03.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_05_04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_05_04.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_05_05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_05_05.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_05_06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_05_06.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_05_07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_05_07.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_06_00.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_06_00.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_06_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_06_01.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_06_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_06_02.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_06_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_06_03.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_06_04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_06_04.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_06_05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_06_05.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_06_06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_06_06.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_06_07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_06_07.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_07_00.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_07_00.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_07_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_07_01.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_07_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_07_02.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_07_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_07_03.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_07_04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_07_04.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_07_05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_07_05.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_07_06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_07_06.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Image/Snowman_07_07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Image/Snowman_07_07.jpg -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Item.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Item.swift 3 | // CoreAnimation 4 | // 5 | // Created by pro648 on 2020/8/9. 6 | // Copyright © 2020 pro648. All rights reserved. 7 | // 8 | 9 | struct Item { 10 | var title: String 11 | var clsNameStr: String 12 | } 13 | -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Performance/Anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Performance/Anchor.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Performance/Cone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Performance/Cone.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Performance/Igloo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Performance/Igloo.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Performance/Key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Performance/Key.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Performance/Man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Performance/Man.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Performance/Spaceship.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Performance/Spaceship.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Vacation Photos/IMG_0150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Vacation Photos/IMG_0150.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Vacation Photos/IMG_0154.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Vacation Photos/IMG_0154.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Vacation Photos/IMG_0163.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Vacation Photos/IMG_0163.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Vacation Photos/IMG_0169.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Vacation Photos/IMG_0169.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Vacation Photos/IMG_0170.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Vacation Photos/IMG_0170.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Vacation Photos/IMG_0173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Vacation Photos/IMG_0173.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Vacation Photos/IMG_0174.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Vacation Photos/IMG_0174.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Vacation Photos/IMG_0180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Vacation Photos/IMG_0180.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Vacation Photos/IMG_0181.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Vacation Photos/IMG_0181.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Vacation Photos/IMG_0184.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Vacation Photos/IMG_0184.png -------------------------------------------------------------------------------- /CoreAnimation/CoreAnimation/Vacation Photos/IMG_0197.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/CoreAnimation/CoreAnimation/Vacation Photos/IMG_0197.png -------------------------------------------------------------------------------- /CoreGraphics-1/CoreGraphics-1.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CoreGraphics-1/CoreGraphics-1/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /CoreGraphics-1/CoreGraphics-1/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /CoreGraphics-2/CoreGraphics-1.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CoreGraphics-2/CoreGraphics-1/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /CoreGraphics-2/CoreGraphics-1/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /CoreGraphics-2模版/CoreGraphics-1.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CoreGraphics-2模版/CoreGraphics-1/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /CoreGraphics-2模版/CoreGraphics-1/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /CoreGraphics-3/CoreGraphics-1.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CoreGraphics-3/CoreGraphics-1/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /CoreGraphics-3/CoreGraphics-1/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /CoreGraphics-3/CoreGraphics-1/MedalDrawing.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CoreGraphics-3/CoreGraphics-1/MedalDrawing.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Delegation&Notification/Delegation&Notification.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Delegation&Notification/Delegation&Notification.xcodeproj/xcuserdata/ad.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Delegation&Notification/Delegation&Notification/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // Delegation&Notification 4 | // 5 | // Created by ad on 19/02/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /Delegation&Notification/README.md: -------------------------------------------------------------------------------- 1 | ### 委托、通知传值的用法与区别 2 | 3 | 低耦合性是良好程序的特性。低耦合性程序可读性和可维护性比较好。Cocoa中的委托、通知功能可以使低耦合性更易实现。 4 | 5 | 这个demo通过使用委托(delegation)和通知(NSNotification)进行传值,在这个过程中学习如何使用委托、通知,及其区别。 6 | 7 | 详细介绍查看下面文章: 8 | 9 | -------------------------------------------------------------------------------- /Delegation&Notification模板/Delegation&Notification.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Delegation&Notification模板/Delegation&Notification/SecondViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SecondViewController.h 3 | // Delegation&Notification 4 | // 5 | // Created by ad on 19/02/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface SecondViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Delegation&Notification模板/Delegation&Notification/ThirdViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ThirdViewController.h 3 | // Delegation&Notification 4 | // 5 | // Created by ad on 19/02/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ThirdViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Delegation&Notification模板/Delegation&Notification/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // Delegation&Notification 4 | // 5 | // Created by ad on 19/02/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /DependencyInversionPrinciple/DependencyInversionPrinciple.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /DependencyInversionPrinciple/DependencyInversionPrinciple/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /DependencyInversionPrinciple/DependencyInversionPrinciple/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /DisplayViewController/DisplayViewController.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /DisplayViewController/DisplayViewController/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /DisplayViewController/DisplayViewController/FirstVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // FirstVC.h 3 | // DisplayViewController 4 | // 5 | // Created by pro648 on 14/04/2018. 6 | // Copyright © 2018 pro648. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FirstVC : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /FileManager/FileManager.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /FileManager/FileManager.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/FileManager/FileManager.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /FileManager/FileManager/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // FileManager 4 | // 5 | // Created by ad on 25/07/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /FileManager/FileManager/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // FileManager 4 | // 5 | // Created by ad on 25/07/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /GestureRecognizer/GestureRecognizer.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GestureRecognizer/GestureRecognizer.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GestureRecognizer/GestureRecognizer.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /GestureRecognizer/GestureRecognizer/Assets.xcassets/first.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "first.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /GestureRecognizer/GestureRecognizer/Assets.xcassets/first.imageset/first.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GestureRecognizer/GestureRecognizer/Assets.xcassets/first.imageset/first.pdf -------------------------------------------------------------------------------- /GestureRecognizer/GestureRecognizer/Assets.xcassets/second.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "second.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /GestureRecognizer/GestureRecognizer/Assets.xcassets/second.imageset/second.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GestureRecognizer/GestureRecognizer/Assets.xcassets/second.imageset/second.pdf -------------------------------------------------------------------------------- /GestureRecognizer/GestureRecognizer/PanViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PanViewController.h 3 | // GestureRecognizer 4 | // 5 | // Created by ad on 19/03/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface PanViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /GestureRecognizer/GestureRecognizer/PinchViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PinchViewController.h 3 | // GestureRecognizer 4 | // 5 | // Created by ad on 19/03/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface PinchViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /GestureRecognizer/GestureRecognizer/RotationViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RotationViewController.h 3 | // GestureRecognizer 4 | // 5 | // Created by ad on 19/03/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface RotationViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /GestureRecognizer/GestureRecognizer/SwipeViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SwipeViewController.h 3 | // GestureRecognizer 4 | // 5 | // Created by ad on 19/03/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface SwipeViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /GestureRecognizer/GestureRecognizer/TapViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TapViewController.h 3 | // GestureRecognizer 4 | // 5 | // Created by ad on 19/03/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface TapViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch.xcworkspace/xcuserdata/pro648.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch.xcworkspace/xcuserdata/pro648.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch.xcworkspace/xcuserdata/pro648.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-1024.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40@2x-1.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-76.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/background.imageset/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/background.imageset/background.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/background.imageset/background@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/background.imageset/background@2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/photoDownloadError.imageset/ic_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/photoDownloadError.imageset/ic_error.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/photoDownloadError.imageset/ic_error_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/photoDownloadError.imageset/ic_error_2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/photoDownloadError.imageset/ic_error_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/photoDownloadError.imageset/ic_error_3x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/photoDownloading.imageset/ic_insert_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/photoDownloading.imageset/ic_insert_photo.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/photoDownloading.imageset/ic_insert_photo_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/photoDownloading.imageset/ic_insert_photo_2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/photoDownloading.imageset/ic_insert_photo_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch/GrandCentralDispatch/Assets.xcassets/photoDownloading.imageset/ic_insert_photo_3x.png -------------------------------------------------------------------------------- /GrandCentralDispatch/GrandCentralDispatch/CollectionViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // CollectionViewController.h 3 | // GrandCentralDispatch 4 | // 5 | // Created by ad on 07/02/2018. 6 | // 7 | 8 | #import 9 | 10 | @interface CollectionViewController : UICollectionViewController 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /GrandCentralDispatch/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '9.0' 2 | inhibit_all_warnings! 3 | 4 | target 'GrandCentralDispatch' do 5 | pod 'ELCImagePickerController', '~> 0.2.0' 6 | 7 | target 'GrandCentralDispatchTests' do 8 | inherit! :search_paths 9 | # Pods for testing 10 | end 11 | 12 | end 13 | -------------------------------------------------------------------------------- /GrandCentralDispatch/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - ELCImagePickerController (0.2.0) 3 | 4 | DEPENDENCIES: 5 | - ELCImagePickerController (~> 0.2.0) 6 | 7 | SPEC CHECKSUMS: 8 | ELCImagePickerController: b1b7084434a7d49f2cfc916bde1f3ba353d38de9 9 | 10 | PODFILE CHECKSUM: 196e54ccc016fb1484999b31d9d3e0c4b77b01d7 11 | 12 | COCOAPODS: 1.3.1 13 | -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch.xcworkspace/xcuserdata/pro648.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch.xcworkspace/xcuserdata/pro648.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-1024.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40@2x-1.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-76.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/background.imageset/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/background.imageset/background.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/background.imageset/background@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/background.imageset/background@2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/photoDownloadError.imageset/ic_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/photoDownloadError.imageset/ic_error.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/photoDownloadError.imageset/ic_error_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/photoDownloadError.imageset/ic_error_2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/photoDownloadError.imageset/ic_error_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/photoDownloadError.imageset/ic_error_3x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/photoDownloading.imageset/ic_insert_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/photoDownloading.imageset/ic_insert_photo.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/photoDownloading.imageset/ic_insert_photo_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/photoDownloading.imageset/ic_insert_photo_2x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/photoDownloading.imageset/ic_insert_photo_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/GrandCentralDispatch模板/GrandCentralDispatch/Assets.xcassets/photoDownloading.imageset/ic_insert_photo_3x.png -------------------------------------------------------------------------------- /GrandCentralDispatch模板/GrandCentralDispatch/CollectionViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // CollectionViewController.h 3 | // GrandCentralDispatch 4 | // 5 | // Created by ad on 07/02/2018. 6 | // 7 | 8 | #import 9 | 10 | @interface CollectionViewController : UICollectionViewController 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /GrandCentralDispatch模板/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '9.0' 2 | inhibit_all_warnings! 3 | 4 | target 'GrandCentralDispatch' do 5 | pod 'ELCImagePickerController', '~> 0.2.0' 6 | 7 | target 'GrandCentralDispatchTests' do 8 | inherit! :search_paths 9 | # Pods for testing 10 | end 11 | 12 | end 13 | -------------------------------------------------------------------------------- /GrandCentralDispatch模板/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - ELCImagePickerController (0.2.0) 3 | 4 | DEPENDENCIES: 5 | - ELCImagePickerController (~> 0.2.0) 6 | 7 | SPEC CHECKSUMS: 8 | ELCImagePickerController: b1b7084434a7d49f2cfc916bde1f3ba353d38de9 9 | 10 | PODFILE CHECKSUM: 196e54ccc016fb1484999b31d9d3e0c4b77b01d7 11 | 12 | COCOAPODS: 1.3.1 13 | -------------------------------------------------------------------------------- /ImageResizing/ImageResizing.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ImageResizing/ImageResizing/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ImageResizing/ImageResizing/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ImageResizing/ImageResizing/visibleEarth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/ImageResizing/ImageResizing/visibleEarth.jpg -------------------------------------------------------------------------------- /InterfaceSegregationPrinciple/InterfaceSegregationPrinciple.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /InterfaceSegregationPrinciple/InterfaceSegregationPrinciple.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /IteratorPattern/IteratorPattern.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /IteratorPattern/IteratorPattern/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /KVC&KVODemo/KVC&KVODemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /KVC&KVODemo/KVC&KVODemo.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/KVC&KVODemo/KVC&KVODemo.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /KVC&KVODemo/KVC&KVODemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // KVC&KVODemo 4 | // 5 | // Created by ad on 01/03/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /KVC&KVODemo/KVC&KVODemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // KVC&KVODemo 4 | // 5 | // Created by ad on 01/03/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /KVC&KVO的本质/KVC&KVO的本质.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /KVC&KVO的本质/KVC&KVO的本质/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // KVC&KVO的本质 4 | // 5 | // Created by pro648 on 2021/1/24. 6 | // 7 | 8 | #import 9 | 10 | @interface AppDelegate : UIResponder 11 | 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /KVC&KVO的本质/KVC&KVO的本质/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /KVC&KVO的本质/KVC&KVO的本质/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /KVC&KVO的本质/KVC&KVO的本质/KVC/Observer.h: -------------------------------------------------------------------------------- 1 | // 2 | // Observer.h 3 | // KVC&KVO的本质 4 | // 5 | // Created by pro648 on 2021/1/24. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface Observer : NSObject 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /KVC&KVO的本质/KVC&KVO的本质/KVO/Child.h: -------------------------------------------------------------------------------- 1 | // 2 | // Child.h 3 | // KVC&KVO的本质 4 | // 5 | // Created by pro648 on 2021/1/21. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface Child : NSObject 13 | 14 | @property (nonatomic, assign) int age; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /KVC&KVO的本质/KVC&KVO的本质/KVO/NSKVONotifying_Child.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSKVONotifying_Child.h 3 | // KVC&KVO的本质 4 | // 5 | // Created by pro648 on 2021/1/21. 6 | // 7 | 8 | #import "Child.h" 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface NSKVONotifying_Child : Child 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /KVC&KVO的本质/KVC&KVO的本质/SceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // KVC&KVO的本质 4 | // 5 | // Created by pro648 on 2021/1/24. 6 | // 7 | 8 | #import 9 | 10 | @interface SceneDelegate : UIResponder 11 | 12 | @property (strong, nonatomic) UIWindow * window; 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /KVC&KVO的本质/KVC&KVO的本质/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // KVC&KVO的本质 4 | // 5 | // Created by pro648 on 2021/1/24. 6 | // 7 | 8 | #import 9 | 10 | @interface ViewController : UIViewController 11 | 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /KeyedArchiver/KeyedArchiver.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /KeyedArchiver/KeyedArchiver.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/KeyedArchiver/KeyedArchiver.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /KeyedArchiver/KeyedArchiver/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // KeyedArchiver 4 | // 5 | // Created by ad on 27/07/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /KeyedArchiver/KeyedArchiver/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // KeyedArchiver 4 | // 5 | // Created by ad on 27/07/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /LinkedList/LinkedList.playground/Sources/Helpers.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public func example(of description: String, action: () -> Void) { 4 | print("--- Example of \(description) ---") 5 | action() 6 | print() 7 | } 8 | -------------------------------------------------------------------------------- /LinkedList/LinkedList.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LiskovSubstitutionPrinciple/LiskovSubstitutionPrinciple.playground/Sources/LSP&OCP/TriangleShape.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public class TriangleShape: Shape { 4 | public func draw() { 5 | // draw the triangle 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /LiskovSubstitutionPrinciple/LiskovSubstitutionPrinciple.playground/Sources/LSP/Geometrics.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public protocol Geometrics { 4 | func area() -> Int 5 | } 6 | -------------------------------------------------------------------------------- /LiskovSubstitutionPrinciple/LiskovSubstitutionPrinciple.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /LiskovSubstitutionPrinciple/LiskovSubstitutionPrinciple.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/Launch.imageset/Launch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/Launch.imageset/Launch.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/Launch.imageset/Launch@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/Launch.imageset/Launch@2x.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/Launch.imageset/Launch@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/Launch.imageset/Launch@3x.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/bad.imageset/bad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/bad.imageset/bad.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/bad.imageset/bad@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/bad.imageset/bad@2x.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/bad.imageset/bad@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/bad.imageset/bad@3x.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/good.imageset/good.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/good.imageset/good.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/good.imageset/good@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/good.imageset/good@2x.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/good.imageset/good@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/good.imageset/good@3x.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/great.imageset/great.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/great.imageset/great.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/great.imageset/great@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/great.imageset/great@2x.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/great.imageset/great@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/great.imageset/great@3x.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/meh.imageset/meh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/meh.imageset/meh.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/meh.imageset/meh@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/meh.imageset/meh@2x.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/meh.imageset/meh@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/meh.imageset/meh@3x.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/terrible.imageset/terrible.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/terrible.imageset/terrible.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/terrible.imageset/terrible@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/terrible.imageset/terrible@2x.png -------------------------------------------------------------------------------- /MVVMPattern/MVVMPattern/Resources/Assets.xcassets/terrible.imageset/terrible@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern/MVVMPattern/Resources/Assets.xcassets/terrible.imageset/terrible@3x.png -------------------------------------------------------------------------------- /MVVMPattern/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '11.0' 2 | 3 | target 'MVVMPattern' do 4 | use_frameworks! 5 | pod 'YelpAPI', '3.0.0' 6 | 7 | # Pods for MVVMPattern 8 | 9 | end 10 | -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/APIKeys.swift: -------------------------------------------------------------------------------- 1 | // 2 | // APIKeys.swift 3 | // MVVMPattern 4 | // 5 | // Created by pro648 on 2019/7/9. 6 | // Copyright © 2019 pro648. All rights reserved. 7 | // 8 | 9 | public let YelpAPIKey = "<#Paste your API Key here#>" 10 | -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/Launch.imageset/Launch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/Launch.imageset/Launch.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/Launch.imageset/Launch@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/Launch.imageset/Launch@2x.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/Launch.imageset/Launch@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/Launch.imageset/Launch@3x.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/bad.imageset/bad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/bad.imageset/bad.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/bad.imageset/bad@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/bad.imageset/bad@2x.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/bad.imageset/bad@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/bad.imageset/bad@3x.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/good.imageset/good.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/good.imageset/good.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/good.imageset/good@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/good.imageset/good@2x.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/good.imageset/good@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/good.imageset/good@3x.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/great.imageset/great.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/great.imageset/great.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/great.imageset/great@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/great.imageset/great@2x.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/great.imageset/great@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/great.imageset/great@3x.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/meh.imageset/meh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/meh.imageset/meh.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/meh.imageset/meh@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/meh.imageset/meh@2x.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/meh.imageset/meh@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/meh.imageset/meh@3x.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/terrible.imageset/terrible.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/terrible.imageset/terrible.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/terrible.imageset/terrible@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/terrible.imageset/terrible@2x.png -------------------------------------------------------------------------------- /MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/terrible.imageset/terrible@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/MVVMPattern模版/MVVMPattern/Resources/Assets.xcassets/terrible.imageset/terrible@3x.png -------------------------------------------------------------------------------- /MVVMPattern模版/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '11.0' 2 | 3 | target 'MVVMPattern' do 4 | use_frameworks! 5 | pod 'YelpAPI', '3.0.0' 6 | 7 | # Pods for MVVMPattern 8 | 9 | end 10 | -------------------------------------------------------------------------------- /MementoPattern/MementoPattern.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /MementoPattern/MementoPattern.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Model-View-ViewModel/Model-View-ViewModel.playground/Resources/direwolf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Model-View-ViewModel/Model-View-ViewModel.playground/Resources/direwolf.png -------------------------------------------------------------------------------- /Model-View-ViewModel/Model-View-ViewModel.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Model-View-ViewModel/Model-View-ViewModel.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /NSCache/NSCache.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /NSCache/NSCache/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /NSCache/NSCache/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /NSCache/NSCache/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /NSCache/NSCache/Assets.xcassets/abc.imageset/abc.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/NSCache/NSCache/Assets.xcassets/abc.imageset/abc.jpeg -------------------------------------------------------------------------------- /NSURLSession1/NSURLSession1.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /NSURLSession1/NSURLSession1.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/NSURLSession1/NSURLSession1.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /NSURLSession1/NSURLSession1/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // NSURLSession1 4 | // 5 | // Created by ad on 19/01/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /NSURLSession1/README.md: -------------------------------------------------------------------------------- 1 | ### NSURLSession的使用 2 | 3 | `NSURLSession`提供了一个可供通过网络下载内容的API,并且具有丰富的代理方法。在iOS中,`NSURLSession`支持在app未运行或挂起时进行后台下载。此外,`NSURLSession`原生的支持data、file、ftp、http和https URL方案,以及用户首选项中代理和socks网关。 4 | 5 | 这篇文章通过下载、暂停、恢复下载图片来学习`NSURLSession`。详细介绍查看下面文章: 6 | 7 | -------------------------------------------------------------------------------- /Open-ClosedPrinciple/Open-ClosedPrinciple.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | var greeting = "Hello, playground" 4 | -------------------------------------------------------------------------------- /Open-ClosedPrinciple/Open-ClosedPrinciple.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Open-ClosedPrinciple/Open-ClosedPrinciple.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Open-ClosedPrinciple/Open-ClosedPrinciple.playground/timeline.xctimeline: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Operation&OperationQueue/Operation&OperationQueue.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/0.imageset/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/0.imageset/1.jpg -------------------------------------------------------------------------------- /Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/1.imageset/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/1.imageset/2.jpg -------------------------------------------------------------------------------- /Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/2.imageset/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/2.imageset/3.jpg -------------------------------------------------------------------------------- /Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/3.imageset/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/3.imageset/4.jpg -------------------------------------------------------------------------------- /Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/4.imageset/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/4.imageset/5.jpg -------------------------------------------------------------------------------- /Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/5.imageset/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/5.imageset/6.jpg -------------------------------------------------------------------------------- /Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/6.imageset/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/6.imageset/7.jpg -------------------------------------------------------------------------------- /Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/7.imageset/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/7.imageset/8.jpg -------------------------------------------------------------------------------- /Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/8.imageset/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/8.imageset/9.jpg -------------------------------------------------------------------------------- /Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/9.imageset/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/9.imageset/10.jpg -------------------------------------------------------------------------------- /Operation&OperationQueue/Operation&OperationQueue/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /PageViewController/PageViewController.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /PageViewController/PageViewController/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /PageViewController/PageViewController/RootViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RootViewController.h 3 | // PageViewController 4 | // 5 | // Created by pro648 on 2018/6/2. 6 | // Copyright © 2018 pro648. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RootViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /PasswordAutoFill/PasswordAutofill.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /PasswordAutoFill/PasswordAutofill/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /PasswordAutoFill模版/PasswordAutoFill-Server/Procfile: -------------------------------------------------------------------------------- 1 | web: Run serve --env production --hostname 0.0.0.0 --port $PORT 2 | -------------------------------------------------------------------------------- /PasswordAutoFill模版/PasswordAutoFill-Server/Resources/Views/index.leaf: -------------------------------------------------------------------------------- 1 | 2 | #set("content") { 3 |

Here's some motivation:

4 |

#(motivationalLottery.motivation)

5 | } 6 | 7 | #embed("base") 8 | -------------------------------------------------------------------------------- /PasswordAutoFill模版/PasswordAutofill.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /PasswordAutoFill模版/PasswordAutofill/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /PasswordAutoFill模版/PasswordAutofill/PasswordAutofill.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Persistence/Persistence.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Persistence/Persistence.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Persistence/Persistence.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Persistence/Persistence.xcodeproj/project.xcworkspace/xcuserdata/darkgm.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Persistence/Persistence.xcodeproj/project.xcworkspace/xcuserdata/darkgm.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Persistence/Persistence.xcodeproj/xcuserdata/darkgm.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Persistence/Persistence/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Persistence 4 | // 5 | // Created by ad on 19/11/2016. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Persistence/Persistence/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // Persistence 4 | // 5 | // Created by ad on 19/11/2016. 6 | // 7 | 8 | #import 9 | 10 | @interface ViewController : UIViewController 11 | 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /Persistence/README.md: -------------------------------------------------------------------------------- 1 | ### 使用偏好设置、属性列表、归档解档保存数据、恢复数据 2 | 3 | 这个demo通过以下四种方式保存、恢复数据: 4 | 5 | - NSUserDefaults (偏好设置) 6 | - property list 即Plist (属性列表) 7 | - NSKeyedArchiver NSKeyedUnarchiver(归档、解档) 8 | - text file 9 | 10 | 详细介绍查看下面文章: 11 | 12 | -------------------------------------------------------------------------------- /PropertyAnimator/PropertyAnimator.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /PropertyAnimator/PropertyAnimator.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/PropertyAnimator/PropertyAnimator.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /PropertyAnimator/PropertyAnimator/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /PropertyAnimator/PropertyAnimator/Assets.xcassets/first.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "first.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /PropertyAnimator/PropertyAnimator/Assets.xcassets/first.imageset/first.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/PropertyAnimator/PropertyAnimator/Assets.xcassets/first.imageset/first.pdf -------------------------------------------------------------------------------- /PropertyAnimator/PropertyAnimator/TimingCurvesViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TimingCurvesViewController.h 3 | // PropertyAnimator 4 | // 5 | // Created by ad on 12/09/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface TimingCurvesViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /PropertyAnimator/PropertyAnimator/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // PropertyAnimator 4 | // 5 | // Created by ad on 27/08/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /ProtocolAndGeneric/ProtocolAndGeneric.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ProtocolAndGeneric/ProtocolAndGeneric.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ProtocolOrientedProgramming/ProtocolOrientedProgramming.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ProtocolOrientedProgramming/ProtocolOrientedProgramming.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /PrototypePattern/PrototypePattern.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /PrototypePattern/PrototypePattern/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Queue/Queue.playground/Sources/Queue.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public protocol Queue { 4 | associatedtype Element 5 | mutating func enqueue(_ element: Element) -> Bool 6 | mutating func dequeue() -> Element? 7 | var isEmpty: Bool { get } 8 | var peek: Element? { get } 9 | } 10 | -------------------------------------------------------------------------------- /Queue/Queue.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /RefreshControl/RefreshControl.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /RefreshControl/RefreshControl.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RefreshControl/RefreshControl.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /RefreshControl/RefreshControl/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // RefreshControl 4 | // 5 | // Created by ad on 27/03/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /RegularExpression/README.md: -------------------------------------------------------------------------------- 1 | ### 正则表达式NSRegularExpression 2 | 3 | 在这个demo里,通过以下三种方式学习正则表达式: 4 | 5 | 1. 进行文本查找、替换。 6 | 2. 验证用户输入文本是否符合格式要求。 7 | 3. 自动格式化用户输入文本。 8 | 9 | `First`、`Second`和`Third`三个视图控制器对应实现上述三项功能。 10 | 11 | 详细介绍查看下面文章: 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /RegularExpression/RegularExpression.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /RegularExpression/RegularExpression.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RegularExpression/RegularExpression.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /RegularExpression/RegularExpression.xcodeproj/xcuserdata/ad.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /RegularExpression/RegularExpression/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /RegularExpression/RegularExpression/Assets.xcassets/checkmark.imageset/checkmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RegularExpression/RegularExpression/Assets.xcassets/checkmark.imageset/checkmark.png -------------------------------------------------------------------------------- /RegularExpression/RegularExpression/Assets.xcassets/checkmark.imageset/checkmark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RegularExpression/RegularExpression/Assets.xcassets/checkmark.imageset/checkmark@2x.png -------------------------------------------------------------------------------- /RegularExpression/RegularExpression/Assets.xcassets/exclamation.imageset/exclamation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RegularExpression/RegularExpression/Assets.xcassets/exclamation.imageset/exclamation.png -------------------------------------------------------------------------------- /RegularExpression/RegularExpression/Assets.xcassets/exclamation.imageset/exclamation@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RegularExpression/RegularExpression/Assets.xcassets/exclamation.imageset/exclamation@2x.png -------------------------------------------------------------------------------- /RegularExpression/RegularExpression/Assets.xcassets/first.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "first.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /RegularExpression/RegularExpression/Assets.xcassets/first.imageset/first.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RegularExpression/RegularExpression/Assets.xcassets/first.imageset/first.pdf -------------------------------------------------------------------------------- /RegularExpression/RegularExpression/Assets.xcassets/second.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "second.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /RegularExpression/RegularExpression/Assets.xcassets/second.imageset/second.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RegularExpression/RegularExpression/Assets.xcassets/second.imageset/second.pdf -------------------------------------------------------------------------------- /RegularExpression/RegularExpression/FirstViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // FirstViewController.h 3 | // RegularExpression 4 | // 5 | // Created by ad on 27/05/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface FirstViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /RegularExpression/RegularExpression/SecondViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SecondViewController.h 3 | // RegularExpression 4 | // 5 | // Created by ad on 28/05/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface SecondViewController : UITableViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /RegularExpression/RegularExpression/ThirdViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ThirdViewController.h 3 | // RegularExpression 4 | // 5 | // Created by ad on 28/05/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ThirdViewController : UITableViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RegularExpression模板/RegularExpression.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression.xcodeproj/xcuserdata/ad.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression/Assets.xcassets/checkmark.imageset/checkmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RegularExpression模板/RegularExpression/Assets.xcassets/checkmark.imageset/checkmark.png -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression/Assets.xcassets/checkmark.imageset/checkmark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RegularExpression模板/RegularExpression/Assets.xcassets/checkmark.imageset/checkmark@2x.png -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression/Assets.xcassets/exclamation.imageset/exclamation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RegularExpression模板/RegularExpression/Assets.xcassets/exclamation.imageset/exclamation.png -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression/Assets.xcassets/exclamation.imageset/exclamation@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RegularExpression模板/RegularExpression/Assets.xcassets/exclamation.imageset/exclamation@2x.png -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression/Assets.xcassets/first.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "first.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression/Assets.xcassets/first.imageset/first.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RegularExpression模板/RegularExpression/Assets.xcassets/first.imageset/first.pdf -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression/Assets.xcassets/second.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "second.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression/Assets.xcassets/second.imageset/second.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/RegularExpression模板/RegularExpression/Assets.xcassets/second.imageset/second.pdf -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression/FirstViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // FirstViewController.h 3 | // RegularExpression 4 | // 5 | // Created by ad on 27/05/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface FirstViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression/SecondViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SecondViewController.h 3 | // RegularExpression 4 | // 5 | // Created by ad on 28/05/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface SecondViewController : UITableViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /RegularExpression模板/RegularExpression/ThirdViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ThirdViewController.h 3 | // RegularExpression 4 | // 5 | // Created by ad on 28/05/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ThirdViewController : UITableViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /ResponderChain/ResponderChain.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ResponderChain/ResponderChain/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ResponderChain/ResponderChain/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ResponderChain/ResponderChain/Item.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Item.swift 3 | // ResponderChain 4 | // 5 | // Created by pro648 on 2020/9/24. 6 | // 7 | 8 | struct Item { 9 | var title: String 10 | var clsNameStr: String 11 | } 12 | -------------------------------------------------------------------------------- /RunLoop/RunLoop.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /RunLoop/RunLoop/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // RunLoop 4 | // 5 | // Created by pro648 on 2020/1/9. 6 | // Copyright © 2020 pro648. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /RunLoop/RunLoop/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /RunLoop/RunLoop/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // RunLoop 4 | // 5 | // Created by pro648 on 2020/1/9. 6 | // Copyright © 2020 pro648. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Runtime/Runtime.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Runtime/Runtime/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Runtime 4 | // 5 | // Created by pro648 on 2020/3/7. 6 | // Copyright © 2020 pro648. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Runtime/Runtime/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Runtime/Runtime/Exchange/PremiumUser.h: -------------------------------------------------------------------------------- 1 | // 2 | // PremiumUser.h 3 | // Runtime 4 | // 5 | // Created by pro648 on 2020/3/7. 6 | // Copyright © 2020 pro648. All rights reserved. 7 | // 8 | 9 | #import "User.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface PremiumUser : User 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Runtime/Runtime/Exchange/User.m: -------------------------------------------------------------------------------- 1 | // 2 | // User.m 3 | // Runtime 4 | // 5 | // Created by pro648 on 2020/3/7. 6 | // Copyright © 2020 pro648. All rights reserved. 7 | // 8 | 9 | #import "User.h" 10 | 11 | @implementation User 12 | 13 | - (void)happyBirthday { 14 | NSLog(@"--- %s ---", __func__); 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Runtime/Runtime/Person.h: -------------------------------------------------------------------------------- 1 | // 2 | // Person.h 3 | // Runtime 4 | // 5 | // Created by pro648 on 2020/3/7. 6 | // Copyright © 2020 pro648. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface Person : NSObject 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Runtime/Runtime/Person.m: -------------------------------------------------------------------------------- 1 | // 2 | // Person.m 3 | // Runtime 4 | // 5 | // Created by pro648 on 2020/3/7. 6 | // Copyright © 2020 pro648. All rights reserved. 7 | // 8 | 9 | #import "Person.h" 10 | 11 | @implementation Person 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Runtime/Runtime/Q&A/Browser.m: -------------------------------------------------------------------------------- 1 | // 2 | // Browser.m 3 | // Runtime 4 | // 5 | // Created by pro648 on 2020/3/7. 6 | // Copyright © 2020 pro648. All rights reserved. 7 | // 8 | 9 | #import "Browser.h" 10 | 11 | @implementation Browser 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Runtime/Runtime/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // Runtime 4 | // 5 | // Created by pro648 on 2020/3/7. 6 | // Copyright © 2020 pro648. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /SQLite/SQLite.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SQLite/SQLite/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ScrollView/README.md: -------------------------------------------------------------------------------- 1 | ### UIScrollView的用法 2 | 3 | 在iOS中,滚动视图`UIScrollView`用于查看大于屏幕的内容。Scroll View有两个主要目的: 4 | 5 | - 让用户拖动视图以显示更多内容区域。 6 | - 让用户使用捏合手势放大或缩小所显示的内容。 7 | 8 | 在这个demo中,实现了缩放视图、翻页浏览、以点击位置为中心放大图片等功能。详细介绍查看下面文章: 9 | 10 | -------------------------------------------------------------------------------- /ScrollView/ScrollView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ScrollView/ScrollView.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/ScrollView/ScrollView.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /ScrollView/ScrollView.xcodeproj/xcuserdata/ad.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /ScrollView/ScrollView/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // ScrollView 4 | // 5 | // Created by ad on 03/07/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /ScrollView/ScrollView/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ScrollView/ScrollView/Assets.xcassets/five.imageset/small_five.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/ScrollView/ScrollView/Assets.xcassets/five.imageset/small_five.png -------------------------------------------------------------------------------- /ScrollView/ScrollView/Assets.xcassets/four.imageset/small_four.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/ScrollView/ScrollView/Assets.xcassets/four.imageset/small_four.png -------------------------------------------------------------------------------- /ScrollView/ScrollView/Assets.xcassets/image.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/ScrollView/ScrollView/Assets.xcassets/image.imageset/image.png -------------------------------------------------------------------------------- /ScrollView/ScrollView/Assets.xcassets/one.imageset/small_one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/ScrollView/ScrollView/Assets.xcassets/one.imageset/small_one.png -------------------------------------------------------------------------------- /ScrollView/ScrollView/Assets.xcassets/six.imageset/small_six.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/ScrollView/ScrollView/Assets.xcassets/six.imageset/small_six.png -------------------------------------------------------------------------------- /ScrollView/ScrollView/Assets.xcassets/three.imageset/small_three.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/ScrollView/ScrollView/Assets.xcassets/three.imageset/small_three.png -------------------------------------------------------------------------------- /ScrollView/ScrollView/Assets.xcassets/two.imageset/small_two.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/ScrollView/ScrollView/Assets.xcassets/two.imageset/small_two.png -------------------------------------------------------------------------------- /ScrollView/ScrollView/PageViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PageViewController.h 3 | // ScrollView 4 | // 5 | // Created by ad on 06/07/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface PageViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /ScrollView/ScrollView/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // ScrollView 4 | // 5 | // Created by ad on 03/07/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /SimpleFactory/SimpleFactory.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SimpleFactory/SimpleFactory/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Stack/README.md: -------------------------------------------------------------------------------- 1 | ### 栈 Stack 2 | 3 | 栈(Stack)又称为堆栈、堆叠,它其实有三种含义,适用于不同场合,很容易混淆。 4 | 5 | - 一种后进先出的数据结构。 6 | - 代码调用栈。 7 | - 内存区域栈。 8 | 9 | 详细介绍查看下面文章: 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Stack/Stack.playground/Sources/Helpers.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public func example(of description: String, action: () -> ()) { 4 | print("--- Example of \(description)") 5 | action() 6 | print() 7 | } 8 | -------------------------------------------------------------------------------- /Stack/Stack.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Stack/Stack.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /StackView/StackView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /StackView/StackView.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/StackView/StackView.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /StackView/StackView/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // StackView 4 | // 5 | // Created by ad on 07/04/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /StackView/StackView/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /StackView/StackView/Assets.xcassets/Heart.imageset/heart120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/StackView/StackView/Assets.xcassets/Heart.imageset/heart120.png -------------------------------------------------------------------------------- /StackView/StackView/Assets.xcassets/Heart.imageset/heart240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/StackView/StackView/Assets.xcassets/Heart.imageset/heart240.png -------------------------------------------------------------------------------- /StackView/StackView/Assets.xcassets/Heart.imageset/heart360.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/StackView/StackView/Assets.xcassets/Heart.imageset/heart360.png -------------------------------------------------------------------------------- /StackView/StackView/Assets.xcassets/Star.imageset/star120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/StackView/StackView/Assets.xcassets/Star.imageset/star120.png -------------------------------------------------------------------------------- /StackView/StackView/Assets.xcassets/Star.imageset/star240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/StackView/StackView/Assets.xcassets/Star.imageset/star240.png -------------------------------------------------------------------------------- /StackView/StackView/Assets.xcassets/Star.imageset/star360.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/StackView/StackView/Assets.xcassets/Star.imageset/star360.png -------------------------------------------------------------------------------- /StackView/StackView/Assets.xcassets/filledStar.imageset/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/StackView/StackView/Assets.xcassets/filledStar.imageset/star.png -------------------------------------------------------------------------------- /StackView/StackView/Assets.xcassets/first.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "first.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /StackView/StackView/Assets.xcassets/first.imageset/first.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/StackView/StackView/Assets.xcassets/first.imageset/first.pdf -------------------------------------------------------------------------------- /StackView/StackView/Assets.xcassets/icon.imageset/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/StackView/StackView/Assets.xcassets/icon.imageset/icon.png -------------------------------------------------------------------------------- /StackView/StackView/Assets.xcassets/second.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "second.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /StackView/StackView/Assets.xcassets/second.imageset/second.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/StackView/StackView/Assets.xcassets/second.imageset/second.pdf -------------------------------------------------------------------------------- /StackView/StackView/FirstViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // FirstViewController.h 3 | // StackView 4 | // 5 | // Created by ad on 07/04/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface FirstViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /StackView/StackView/ThirdViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ThirdViewController.h 3 | // StackView 4 | // 5 | // Created by ad on 07/04/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ThirdViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /StrategyPattern/StrategyPattern.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /StrategyPattern/StrategyPattern/Model/Meal.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Meal.swift 3 | // StrategyPattern 4 | // 5 | // Created by pro648 on 2019/5/25. 6 | // Copyright © 2019 pro648. All rights reserved. 7 | // 8 | 9 | struct Meal { 10 | var name: String 11 | var image: String 12 | var price: String 13 | } 14 | -------------------------------------------------------------------------------- /StrategyPattern/StrategyPattern/Resource/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /StrategyPattern/StrategyPattern/Resource/Assets.xcassets/delivery.imageset/delivery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/StrategyPattern/StrategyPattern/Resource/Assets.xcassets/delivery.imageset/delivery.png -------------------------------------------------------------------------------- /StrategyPattern/StrategyPattern/Resource/Assets.xcassets/meal1.imageset/meal1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/StrategyPattern/StrategyPattern/Resource/Assets.xcassets/meal1.imageset/meal1.png -------------------------------------------------------------------------------- /StrategyPattern/StrategyPattern/Resource/Assets.xcassets/meal2.imageset/meal3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/StrategyPattern/StrategyPattern/Resource/Assets.xcassets/meal2.imageset/meal3.png -------------------------------------------------------------------------------- /StrategyPattern/StrategyPattern/Strategy/CheckoutStrategy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CheckoutStrategy.swift 3 | // StrategyPattern 4 | // 5 | // Created by pro648 on 2019/5/25. 6 | // Copyright © 2019 pro648. All rights reserved. 7 | // 8 | 9 | protocol CheckoutStrategy: class { 10 | func getFinalPrice(with itemPrices:[Int]) -> Int 11 | } 12 | -------------------------------------------------------------------------------- /SwiftPointer/SwiftPointer.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /SwiftPointer/SwiftPointer.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Synchronization/Synchronization.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Synchronization/Synchronization/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Synchronization/Synchronization/Synchronization-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | #import "SynchronizedDemo.h" 6 | -------------------------------------------------------------------------------- /Timer/Timer.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Timer/Timer/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Timer模版/Timer.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Timer模版/Timer/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /TransitionAnimation/TransitionAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TransitionAnimation/TransitionAnimation/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /TransitionAnimation/TransitionAnimation/Assets.xcassets/back_cat.imageset/wiggles@2x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation/TransitionAnimation/Assets.xcassets/back_cat.imageset/wiggles@2x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation/TransitionAnimation/Assets.xcassets/back_cat.imageset/wiggles@3x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation/TransitionAnimation/Assets.xcassets/back_cat.imageset/wiggles@3x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation/TransitionAnimation/Assets.xcassets/boring_fish.imageset/bongo@2x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation/TransitionAnimation/Assets.xcassets/boring_fish.imageset/bongo@2x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation/TransitionAnimation/Assets.xcassets/boring_fish.imageset/bongo@3x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation/TransitionAnimation/Assets.xcassets/boring_fish.imageset/bongo@3x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation/TransitionAnimation/Assets.xcassets/epic_dog.imageset/wrigley@2x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation/TransitionAnimation/Assets.xcassets/epic_dog.imageset/wrigley@2x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation/TransitionAnimation/Assets.xcassets/epic_dog.imageset/wrigley@3x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation/TransitionAnimation/Assets.xcassets/epic_dog.imageset/wrigley@3x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation/TransitionAnimation/Assets.xcassets/rw-logo.imageset/Razewarelogo_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation/TransitionAnimation/Assets.xcassets/rw-logo.imageset/Razewarelogo_1024.png -------------------------------------------------------------------------------- /TransitionAnimation/TransitionAnimation/Assets.xcassets/rwdevcon-bg.imageset/rwdevcon-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation/TransitionAnimation/Assets.xcassets/rwdevcon-bg.imageset/rwdevcon-bg.png -------------------------------------------------------------------------------- /TransitionAnimation/TransitionAnimation/Assets.xcassets/sad_dog.imageset/rufus@2x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation/TransitionAnimation/Assets.xcassets/sad_dog.imageset/rufus@2x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation/TransitionAnimation/Assets.xcassets/sad_dog.imageset/rufus@3x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation/TransitionAnimation/Assets.xcassets/sad_dog.imageset/rufus@3x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation/TransitionAnimation/Assets.xcassets/sleepy_cat.imageset/rumble@2x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation/TransitionAnimation/Assets.xcassets/sleepy_cat.imageset/rumble@2x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation/TransitionAnimation/Assets.xcassets/sleepy_cat.imageset/rumble@3x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation/TransitionAnimation/Assets.xcassets/sleepy_cat.imageset/rumble@3x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation模版/TransitionAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TransitionAnimation模版/TransitionAnimation/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /TransitionAnimation模版/TransitionAnimation/Assets.xcassets/back_cat.imageset/wiggles@2x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation模版/TransitionAnimation/Assets.xcassets/back_cat.imageset/wiggles@2x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation模版/TransitionAnimation/Assets.xcassets/back_cat.imageset/wiggles@3x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation模版/TransitionAnimation/Assets.xcassets/back_cat.imageset/wiggles@3x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation模版/TransitionAnimation/Assets.xcassets/boring_fish.imageset/bongo@2x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation模版/TransitionAnimation/Assets.xcassets/boring_fish.imageset/bongo@2x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation模版/TransitionAnimation/Assets.xcassets/boring_fish.imageset/bongo@3x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation模版/TransitionAnimation/Assets.xcassets/boring_fish.imageset/bongo@3x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation模版/TransitionAnimation/Assets.xcassets/epic_dog.imageset/wrigley@2x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation模版/TransitionAnimation/Assets.xcassets/epic_dog.imageset/wrigley@2x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation模版/TransitionAnimation/Assets.xcassets/epic_dog.imageset/wrigley@3x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation模版/TransitionAnimation/Assets.xcassets/epic_dog.imageset/wrigley@3x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation模版/TransitionAnimation/Assets.xcassets/rw-logo.imageset/Razewarelogo_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation模版/TransitionAnimation/Assets.xcassets/rw-logo.imageset/Razewarelogo_1024.png -------------------------------------------------------------------------------- /TransitionAnimation模版/TransitionAnimation/Assets.xcassets/rwdevcon-bg.imageset/rwdevcon-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation模版/TransitionAnimation/Assets.xcassets/rwdevcon-bg.imageset/rwdevcon-bg.png -------------------------------------------------------------------------------- /TransitionAnimation模版/TransitionAnimation/Assets.xcassets/sad_dog.imageset/rufus@2x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation模版/TransitionAnimation/Assets.xcassets/sad_dog.imageset/rufus@2x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation模版/TransitionAnimation/Assets.xcassets/sad_dog.imageset/rufus@3x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation模版/TransitionAnimation/Assets.xcassets/sad_dog.imageset/rufus@3x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation模版/TransitionAnimation/Assets.xcassets/sleepy_cat.imageset/rumble@2x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation模版/TransitionAnimation/Assets.xcassets/sleepy_cat.imageset/rumble@2x.jpeg -------------------------------------------------------------------------------- /TransitionAnimation模版/TransitionAnimation/Assets.xcassets/sleepy_cat.imageset/rumble@3x.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/TransitionAnimation模版/TransitionAnimation/Assets.xcassets/sleepy_cat.imageset/rumble@3x.jpeg -------------------------------------------------------------------------------- /Tree/GeneralPurposeTree.playground/Sources/Helpers.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public func example(of description: String, action: () -> Void) { 4 | print("--- Example of: \(description)") 5 | action() 6 | print() 7 | } 8 | -------------------------------------------------------------------------------- /Tree/GeneralPurposeTree.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Tree/GeneralPurposeTree.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /UIKitDynamics/UIKitDynamics.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /UIKitDynamics/UIKitDynamics.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/UIKitDynamics/UIKitDynamics.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /UIKitDynamics/UIKitDynamics.xcodeproj/xcuserdata/ad.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /UIKitDynamics/UIKitDynamics/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // UIKitDynamics 4 | // 5 | // Created by ad on 22/06/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /UIKitDynamics/UIKitDynamics/Assets.xcassets/AppleLogo.imageset/AppleLogo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/UIKitDynamics/UIKitDynamics/Assets.xcassets/AppleLogo.imageset/AppleLogo.jpg -------------------------------------------------------------------------------- /UIKitDynamics/UIKitDynamics/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /UIKitDynamics/UIKitDynamics/Assets.xcassets/circle.imageset/first.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/UIKitDynamics/UIKitDynamics/Assets.xcassets/circle.imageset/first.pdf -------------------------------------------------------------------------------- /UIKitDynamics/UIKitDynamics/FifthViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // FifthViewController.h 3 | // UIKitDynamics 4 | // 5 | // Created by ad on 22/06/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface FifthViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UIKitDynamics/UIKitDynamics/FirstViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // FirstViewController.h 3 | // UIKitDynamics 4 | // 5 | // Created by ad on 22/06/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface FirstViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UIKitDynamics/UIKitDynamics/FourthViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // FourthViewController.h 3 | // UIKitDynamics 4 | // 5 | // Created by ad on 22/06/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface FourthViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UIKitDynamics/UIKitDynamics/SecondViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SecondViewController.h 3 | // UIKitDynamics 4 | // 5 | // Created by ad on 22/06/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface SecondViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UIKitDynamics/UIKitDynamics/TabBarController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TabBarController.h 3 | // UIKitDynamics 4 | // 5 | // Created by ad on 22/06/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface TabBarController : UITabBarController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /UIKitDynamics/UIKitDynamics/ThirdViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ThirdViewController.h 3 | // UIKitDynamics 4 | // 5 | // Created by ad on 22/06/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ThirdViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /URLSession/URLSession.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /URLSession/URLSession/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /URLSession/URLSession/Resources/Assets.xcassets/first.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "first.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /URLSession/URLSession/Resources/Assets.xcassets/first.imageset/first.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/URLSession/URLSession/Resources/Assets.xcassets/first.imageset/first.pdf -------------------------------------------------------------------------------- /URLSession/URLSession/Resources/Assets.xcassets/second.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "second.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /URLSession/URLSession/Resources/Assets.xcassets/second.imageset/second.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/URLSession/URLSession/Resources/Assets.xcassets/second.imageset/second.pdf -------------------------------------------------------------------------------- /UserNotifications/Objective-C/UserNotifications Objective-C.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /UserNotifications/Objective-C/UserNotifications Objective-C/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /UserNotifications/Swift/UserNotification Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /UserNotifications/Swift/UserNotification Swift/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /VisualEffectView/VisualEffectView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /VisualEffectView/VisualEffectView/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /VisualEffectView/VisualEffectView/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /WebKit/WebKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /WebKit/WebKit/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /WebKit/WebKit/Resourece/NSHipster/mattt-93904827ef54896bb67f3a0d4abf548b9ecc93a51536bbc3326f24630512727d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/WebKit/WebKit/Resourece/NSHipster/mattt-93904827ef54896bb67f3a0d4abf548b9ecc93a51536bbc3326f24630512727d.jpg -------------------------------------------------------------------------------- /WebKit/WebKit/ScriptMessageHandler/hide.js: -------------------------------------------------------------------------------- 1 | var styleElement = document.createElement('style'); 2 | document.documentElement.appendChild(styleElement); 3 | styleElement.textContent = '.toc { display : none !important; } #mw-panel { display: none !important; } #content { margin: 0px 10px 0px 10px !important; };'; 4 | -------------------------------------------------------------------------------- /WebKit/WebKit/ViewController.h: -------------------------------------------------------------------------------- 1 | // ViewController.h 2 | // WebKit 3 | // 4 | // Created by pro648 on 2018/12/24 5 | // Copyright © 2018 pro648. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | @interface ViewController : UIViewController 11 | 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /Widget/Objective-C/UsedSpaceWidget/TodayViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TodayViewController.h 3 | // UsedSpaceWidget 4 | // 5 | // Created by pro648 on 18/7/22 6 | // Copyright © 2018年 pro648. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TodayViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Widget/Objective-C/Widget Objective-C.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Widget/Objective-C/Widget Objective-C/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Widget/Objective-C/Widget Objective-C/Assets.xcassets/first.imageset/first.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Widget/Objective-C/Widget Objective-C/Assets.xcassets/first.imageset/first.pdf -------------------------------------------------------------------------------- /Widget/Swift/Widget Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Widget/Swift/Widget Swift/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Widget/Swift/Widget Swift/Assets.xcassets/first.imageset/first.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/Widget/Swift/Widget Swift/Assets.xcassets/first.imageset/first.pdf -------------------------------------------------------------------------------- /category、load、initialize的本质/category、load、initialize的本质.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /category、load、initialize的本质/category、load、initialize的本质/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // category、load、initialize的本质 4 | // 5 | // Created by pro648 on 2021/1/26. 6 | // 7 | 8 | #import 9 | 10 | @interface AppDelegate : UIResponder 11 | 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /category、load、initialize的本质/category、load、initialize的本质/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /category、load、initialize的本质/category、load、initialize的本质/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /category、load、initialize的本质/category、load、initialize的本质/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // category、load、initialize的本质 4 | // 5 | // Created by pro648 on 2021/1/26. 6 | // 7 | 8 | #import 9 | 10 | @interface ViewController : UIViewController 11 | 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /copy&mutableCopy/copy&mutableCopy.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /copy&mutableCopy/copy&mutableCopy.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pro648/BasicDemos-iOS/cfcc9ca43eb8cdbcaee440036633f64ac41ba86c/copy&mutableCopy/copy&mutableCopy.xcodeproj/project.xcworkspace/xcuserdata/ad.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /copy&mutableCopy/copy&mutableCopy/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // copy&mutableCopy 4 | // 5 | // Created by ad on 02/08/2017. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | --------------------------------------------------------------------------------