├── [1]. block_pass_value
├── block_practice
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ └── avatar.imageset
│ │ │ ├── avatar.png
│ │ │ └── Contents.json
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ └── SecondViewController.h
├── block_practice.xcodeproj
│ ├── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ │ └── xcdebugger
│ │ │ └── Breakpoints_v2.xcbkptlist
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ ├── shijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── block_practiceTests
│ └── Info.plist
└── block_practiceUITests
│ └── Info.plist
├── [15]. method_swizzling
├── method_swizzling
│ ├── emoji@2x.png
│ ├── UIImage+ImageLoadResult.h
│ ├── ViewController.h
│ ├── UIViewController+LifeCycleTracking.h
│ ├── AppDelegate.h
│ └── main.m
├── method_swizzling.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── method_swizzlingTests
│ └── Info.plist
└── method_swizzlingUITests
│ └── Info.plist
├── [4]. clean_tableview
├── clean_tableview_shijie
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ └── avatar.imageset
│ │ │ ├── WechatIMG1.jpeg
│ │ │ └── Contents.json
│ ├── FriendInfo.m
│ ├── ViewController.h
│ ├── FriendInfoList.h
│ ├── AppDelegate.h
│ ├── FriendInfo.h
│ ├── main.m
│ ├── FriendTableViewCell.h
│ └── FriendsListDataSource.h
├── clean_tableview_shijie.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ ├── shijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── clean_tableview_shijieTests
│ └── Info.plist
└── clean_tableview_shijieUITests
│ └── Info.plist
├── [2]. multi_image_cache_and_download
├── multi_image_cache_and_download_demo_ssj
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ ├── avatar.imageset
│ │ │ ├── avatar.png
│ │ │ └── Contents.json
│ │ └── placeholder.imageset
│ │ │ ├── placeholder.png
│ │ │ └── Contents.json
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ ├── AppInfoModel.m
│ └── AppInfoModel.h
└── multi_image_cache_and_download_demo_ssj.xcodeproj
│ └── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcuserdata
│ ├── shijie.xcuserdatad
│ └── UserInterfaceState.xcuserstate
│ └── SunShijie.xcuserdatad
│ └── UserInterfaceState.xcuserstate
├── [12]. gcd_demo
├── gcd_demo.xcodeproj
│ ├── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ │ └── xcdebugger
│ │ │ └── Breakpoints_v2.xcbkptlist
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── gcd_demo
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ └── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ └── Contents.json
├── gcd_demoTests
│ └── Info.plist
└── gcd_demoUITests
│ └── Info.plist
├── [24]. same_color_demo
├── colorsame.xcodeproj
│ ├── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ │ └── xcdebugger
│ │ │ └── Breakpoints_v2.xcbkptlist
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ ├── shijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── colorsame
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ └── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ └── Contents.json
├── colorsameTests
│ └── Info.plist
└── colorsameUITests
│ └── Info.plist
├── [9]. custom_segue
├── customSegue.xcodeproj
│ ├── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ │ └── xcdebugger
│ │ │ └── Breakpoints_v2.xcbkptlist
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── customSegue
│ ├── CustomSegue.h
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ ├── ViewController.m
│ └── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ └── Contents.json
├── customSegueTests
│ └── Info.plist
└── customSegueUITests
│ └── Info.plist
├── [40]. superclassdemo
├── superclassdemo.xcodeproj
│ ├── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ │ ├── xcdebugger
│ │ │ └── Breakpoints_v2.xcbkptlist
│ │ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
└── superclassdemo
│ ├── Son.h
│ ├── Son.m
│ ├── Father.h
│ ├── Father.m
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── SJApplication.h
│ ├── SJApplication.m
│ └── main.m
├── [7]. oc_js_interaction
├── oc_js_interaction.xcodeproj
│ ├── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ │ └── xcdebugger
│ │ │ └── Breakpoints_v2.xcbkptlist
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ ├── shijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── oc_js_interaction
│ ├── ViewController.h
│ ├── JSCallOCViewController.h
│ ├── OCCallJSViewController.h
│ ├── JSCallOCJSExportViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ ├── Calculator.h
│ └── oc_call_js.html
├── oc_js_interactionTests
│ └── Info.plist
└── oc_js_interactionUITests
│ └── Info.plist
├── [17]. class_addMethod_demo
├── class_addMethod_demo.xcodeproj
│ ├── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ │ └── xcdebugger
│ │ │ └── Breakpoints_v2.xcbkptlist
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── class_addMethod_demo
│ ├── Car.m
│ ├── Car+Fly.h
│ ├── Car.h
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ └── Car+Fly.m
├── class_addMethod_demoTests
│ └── Info.plist
└── class_addMethod_demoUITests
│ └── Info.plist
├── [19]. bad_access_demo
├── [19]. bad_access_demo.xcodeproj
│ ├── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ │ └── xcdebugger
│ │ │ └── Breakpoints_v2.xcbkptlist
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── [19]. bad_access_demo
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ └── ViewController.m
├── [19]. bad_access_demoTests
│ └── Info.plist
└── [19]. bad_access_demoUITests
│ └── Info.plist
├── [10]. mvvm_kvo_two_way_binding
├── mvc_delegate_demo_shijie.xcodeproj
│ ├── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ │ └── xcdebugger
│ │ │ └── Breakpoints_v2.xcbkptlist
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
└── mvc_delegate_demo_shijie
│ ├── SJModel.m
│ ├── SJViewController.h
│ ├── ViewController.h
│ ├── SJModel.h
│ ├── SJView.h
│ ├── AppDelegate.h
│ ├── SJViewModel.h
│ ├── main.m
│ └── FBKVOController
│ └── KVOController.h
├── [34]. loadDemo
├── loadDemo.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── SunShijie.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
├── loadDemo
│ ├── PP.h
│ ├── Human+Bad.h
│ ├── PP+lalala.h
│ ├── People.h
│ ├── Person+man.h
│ ├── Student.h
│ ├── Human+oridary.h
│ ├── Human.h
│ ├── Person.h
│ ├── Student+good.h
│ ├── PP.m
│ ├── ViewController.h
│ ├── Human.m
│ ├── People.m
│ ├── Human+Bad.m
│ ├── Human+oridary.m
│ ├── PP+lalala.m
│ ├── AppDelegate.h
│ ├── Person.m
│ ├── Student.m
│ ├── main.m
│ ├── Person+man.m
│ ├── Student+good.m
│ └── ViewController.m
├── loadDemoTests
│ └── Info.plist
└── loadDemoUITests
│ └── Info.plist
├── [29]. touch_demo
├── touch_demo.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── touch_demo
│ ├── SubView.h
│ ├── SuperView.h
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ ├── SuperView.m
│ └── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ └── Contents.json
├── touch_demoTests
│ └── Info.plist
└── touch_demoUITests
│ └── Info.plist
├── [31]. string_demo
├── string_demo.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── SunShijie.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── xcdebugger
│ │ └── Breakpoints_v2.xcbkptlist
├── string_demo
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ └── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ └── Contents.json
├── string_demoTests
│ └── Info.plist
└── string_demoUITests
│ └── Info.plist
├── [36]. static_demo
├── static_demo.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── SunShijie.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
└── static_demo
│ ├── Person.m
│ ├── ViewController.h
│ ├── Person.h
│ ├── AppDelegate.h
│ └── main.m
├── [39]. synthesize
├── synthesize.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── SunShijie.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
└── synthesize
│ ├── ViewController.h
│ ├── Person.h
│ ├── Person.m
│ ├── AppDelegate.h
│ ├── main.m
│ └── ViewController.m
├── [18]. kvc_demo
├── [18]. kvc_demo.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── [18]. kvc_demo
│ ├── Friend.m
│ ├── Company.m
│ ├── ViewController.h
│ ├── Company.h
│ ├── AppDelegate.h
│ ├── Friend.h
│ ├── main.m
│ ├── Product.h
│ ├── Product.m
│ ├── Person.h
│ └── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ └── Contents.json
├── [18]. kvc_demoTests
│ └── Info.plist
└── [18]. kvc_demoUITests
│ └── Info.plist
├── [26]. indexset_demo
├── indexset_demo.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── indexset_demo
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ └── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ └── Contents.json
├── indexset_demoTests
│ └── Info.plist
└── indexset_demoUITests
│ └── Info.plist
├── [3]. init_and_initWithFrame
├── init_demo.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── init_demo
│ ├── TestView.h
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ ├── TestView.m
│ └── ViewController.m
├── init_demoTests
│ └── Info.plist
└── init_demoUITests
│ └── Info.plist
├── [16]. kvo_array_count
├── kvo_array_count.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── kvo_array_count
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ └── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ └── Contents.json
├── kvo_array_countTests
│ └── Info.plist
└── kvo_array_countUITests
│ └── Info.plist
├── [23]. appdelegate_demo
├── appdelegate_demo.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── appdelegate_demo
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ └── ViewController.m
├── appdelegate_demoTests
│ └── Info.plist
└── appdelegate_demoUITests
│ └── Info.plist
├── [27]. private_method_demo
├── private_method.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── private_method
│ ├── Person.h
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── Person.m
│ ├── main.m
│ └── ViewController.m
├── private_methodTests
│ └── Info.plist
└── private_methodUITests
│ └── Info.plist
├── [28]. setter_getter_demo
├── property_demo.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── property_demo
│ ├── ViewController.h
│ ├── Person.h
│ ├── AppDelegate.h
│ ├── main.m
│ ├── Person.m
│ ├── ViewController.m
│ └── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ └── Contents.json
├── property_demoTests
│ └── Info.plist
└── property_demoUITests
│ └── Info.plist
├── [33]. copy_mCopy_array
├── copy_mCopy_array.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── SunShijie.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
└── copy_mCopy_array
│ ├── ViewController.h
│ ├── AppDelegate.h
│ └── main.m
├── [35]. message_forward
├── message_forward.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── SunShijie.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
└── message_forward
│ ├── ViewController.h
│ ├── SecondGreetingClass.h
│ ├── GreetingClass.h
│ ├── AppDelegate.h
│ ├── SecondGreetingClass.m
│ ├── main.m
│ └── ViewController.m
├── [37]. cgrectinset_demo
├── cgrectinset_demo.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── SunShijie.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
└── cgrectinset_demo
│ ├── ViewController.h
│ ├── AppDelegate.h
│ └── main.m
├── [5]. associate_object
├── associate_object.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── associate_object
│ ├── Person.m
│ ├── Person+Job.h
│ ├── ViewController.h
│ ├── Person.h
│ ├── AppDelegate.h
│ ├── main.m
│ ├── ViewController.m
│ └── Person+Job.m
├── associate_objectTests
│ └── Info.plist
└── associate_objectUITests
│ └── Info.plist
├── [13]. autoresizing_demo
├── autoresizing_demo.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── autoresizing_demo
│ ├── ViewController.h
│ ├── AppDelegate.h
│ └── main.m
├── autoresizing_demoTests
│ └── Info.plist
└── autoresizing_demoUITests
│ └── Info.plist
├── [38]. stringRetainCount
├── stringRetainCount.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── SunShijie.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
└── stringRetainCount
│ ├── ViewController.h
│ ├── AppDelegate.h
│ └── main.m
├── [25]. containsObject_demo
├── containsObject_demo.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── containsObject_demo
│ ├── Person.m
│ ├── Person.h
│ ├── ViewController.h
│ ├── AppDelegate.h
│ └── main.m
├── containsObject_demoTests
│ └── Info.plist
└── containsObject_demoUITests
│ └── Info.plist
├── [32]. find_viewController
├── find_viewController.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── SunShijie.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
└── find_viewController
│ ├── ViewController.h
│ ├── UIView+ViewController.h
│ ├── SubView.h
│ ├── AppDelegate.h
│ ├── main.m
│ └── UIView+ViewController.m
├── [20]. isa_swizzle_demo
├── [21]. isa_swizzle_demo.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── [21]. isa_swizzle_demo
│ ├── Person.m
│ ├── Student.m
│ ├── ViewController.h
│ ├── Person.h
│ ├── AppDelegate.h
│ ├── main.m
│ └── Student.h
├── [21]. isa_swizzle_demoTests
│ └── Info.plist
└── [21]. isa_swizzle_demoUITests
│ └── Info.plist
├── [21]. getClass_and_class
├── [21]. getClass_and_class.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── [21]. getClass_and_class
│ ├── Person.m
│ ├── Person.h
│ ├── ViewController.h
│ ├── AppDelegate.h
│ └── main.m
├── [21]. getClass_and_classTests
│ └── Info.plist
└── [21]. getClass_and_classUITests
│ └── Info.plist
├── [30]. zero_string_delete_demo
├── zero_string_delete_demo.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
└── zero_string_delete_demo
│ ├── ViewController.h
│ ├── AppDelegate.h
│ └── main.m
├── [11]. multi_thread_communication
├── multi_thread_communication.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── SunShijie.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── xcdebugger
│ │ └── Breakpoints_v2.xcbkptlist
└── multi_thread_communication
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ ├── Person.h
│ ├── Card.h
│ └── Card.m
├── [6]. collectionview_masonry_layout
├── collectionview_masonry_layout.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── SunShijie.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
└── collectionview_masonry_layout
│ ├── ViewController.h
│ ├── AppDelegate.h
│ └── main.m
└── [14]. block_lowlevel_analysis
├── main5.m
├── main6.m
├── main0.m
├── main7.m
├── main3.m
├── main4.m
├── main9.m
├── main2.m
├── main1.m
├── main8.m
└── main10.m
/[1]. block_pass_value/block_practice/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/[15]. method_swizzling/method_swizzling/emoji@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[15]. method_swizzling/method_swizzling/emoji@2x.png
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijie/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/[1]. block_pass_value/block_practice/Assets.xcassets/avatar.imageset/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[1]. block_pass_value/block_practice/Assets.xcassets/avatar.imageset/avatar.png
--------------------------------------------------------------------------------
/[12]. gcd_demo/gcd_demo.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/[24]. same_color_demo/colorsame.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/[9]. custom_segue/customSegue.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/[1]. block_pass_value/block_practice.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/[40]. superclassdemo/superclassdemo.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/[7]. oc_js_interaction/oc_js_interaction.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/[17]. class_addMethod_demo/class_addMethod_demo.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/[19]. bad_access_demo/[19]. bad_access_demo.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijie/Assets.xcassets/avatar.imageset/WechatIMG1.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[4]. clean_tableview/clean_tableview_shijie/Assets.xcassets/avatar.imageset/WechatIMG1.jpeg
--------------------------------------------------------------------------------
/[10]. mvvm_kvo_two_way_binding/mvc_delegate_demo_shijie.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/[12]. gcd_demo/gcd_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[24]. same_color_demo/colorsame.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[29]. touch_demo/touch_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[31]. string_demo/string_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/PP.h:
--------------------------------------------------------------------------------
1 | //
2 | // PP.h
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/28.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person.h"
10 |
11 | @interface PP : Person
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[36]. static_demo/static_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[39]. synthesize/synthesize.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[9]. custom_segue/customSegue.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[1]. block_pass_value/block_practice.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[26]. indexset_demo/indexset_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/Human+Bad.h:
--------------------------------------------------------------------------------
1 | //
2 | // Human+Bad.h
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/5/6.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Human.h"
10 |
11 | @interface Human (Bad)
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/PP+lalala.h:
--------------------------------------------------------------------------------
1 | //
2 | // PP+lalala.h
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/28.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "PP.h"
10 |
11 | @interface PP (lalala)
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/People.h:
--------------------------------------------------------------------------------
1 | //
2 | // People.h
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/5/6.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Human.h"
10 |
11 | @interface People : Human
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[3]. init_and_initWithFrame/init_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[40]. superclassdemo/superclassdemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[15]. method_swizzling/method_swizzling.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[16]. kvo_array_count/kvo_array_count.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[23]. appdelegate_demo/appdelegate_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[27]. private_method_demo/private_method.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[28]. setter_getter_demo/property_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[33]. copy_mCopy_array/copy_mCopy_array.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/Person+man.h:
--------------------------------------------------------------------------------
1 | //
2 | // Person+man.h
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/20.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person.h"
10 |
11 | @interface Person (man)
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/Student.h:
--------------------------------------------------------------------------------
1 | //
2 | // Student.h
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/20.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person.h"
10 |
11 | @interface Student : Person
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[35]. message_forward/message_forward.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[37]. cgrectinset_demo/cgrectinset_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[5]. associate_object/associate_object.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[12]. gcd_demo/gcd_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[12]. gcd_demo/gcd_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[13]. autoresizing_demo/autoresizing_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demo/Friend.m:
--------------------------------------------------------------------------------
1 | //
2 | // Friend.m
3 | // [18]. kvc_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Friend.h"
10 |
11 | @implementation Friend
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[34]. loadDemo/loadDemo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[38]. stringRetainCount/stringRetainCount.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[7]. oc_js_interaction/oc_js_interaction.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demo/Company.m:
--------------------------------------------------------------------------------
1 | //
2 | // Company.m
3 | // [18]. kvc_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Company.h"
10 |
11 | @implementation Company
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[19]. bad_access_demo/[19]. bad_access_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[25]. containsObject_demo/containsObject_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[29]. touch_demo/touch_demo/SubView.h:
--------------------------------------------------------------------------------
1 | //
2 | // SubView.h
3 | // touch_demo
4 | //
5 | // Created by Sun Shijie on 2017/7/25.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SubView : UIView
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj/Assets.xcassets/avatar.imageset/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj/Assets.xcassets/avatar.imageset/avatar.png
--------------------------------------------------------------------------------
/[32]. find_viewController/find_viewController.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/Human+oridary.h:
--------------------------------------------------------------------------------
1 | //
2 | // Human+oridary.h
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/5/6.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Human.h"
10 |
11 | @interface Human (oridary)
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/Human.h:
--------------------------------------------------------------------------------
1 | //
2 | // Human.h
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/5/6.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Human : NSObject
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijie.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[17]. class_addMethod_demo/class_addMethod_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[17]. class_addMethod_demo/class_addMethod_demo/Car.m:
--------------------------------------------------------------------------------
1 | //
2 | // Car.m
3 | // class_addMethod_demo
4 | //
5 | // Created by Sun Shijie on 2017/4/28.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Car.h"
10 |
11 | @implementation Car
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[20]. isa_swizzle_demo/[21]. isa_swizzle_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[24]. same_color_demo/colorsame.xcodeproj/project.xcworkspace/xcuserdata/shijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[24]. same_color_demo/colorsame.xcodeproj/project.xcworkspace/xcuserdata/shijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[29]. touch_demo/touch_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[29]. touch_demo/touch_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[29]. touch_demo/touch_demo/SuperView.h:
--------------------------------------------------------------------------------
1 | //
2 | // SuperView.h
3 | // touch_demo
4 | //
5 | // Created by Sun Shijie on 2017/7/25.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SuperView : UIView
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[39]. synthesize/synthesize.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[39]. synthesize/synthesize.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[5]. associate_object/associate_object/Person.m:
--------------------------------------------------------------------------------
1 | //
2 | // Person.m
3 | // associate_object
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person.h"
10 |
11 | @implementation Person
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[18]. kvc_demo/[18]. kvc_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[21]. getClass_and_class/[21]. getClass_and_class.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[24]. same_color_demo/colorsame.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[24]. same_color_demo/colorsame.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[31]. string_demo/string_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[31]. string_demo/string_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[36]. static_demo/static_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[36]. static_demo/static_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[9]. custom_segue/customSegue.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[9]. custom_segue/customSegue.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[10]. mvvm_kvo_two_way_binding/mvc_delegate_demo_shijie.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[17]. class_addMethod_demo/class_addMethod_demo/Car+Fly.h:
--------------------------------------------------------------------------------
1 | //
2 | // Car+Fly.h
3 | // class_addMethod_demo
4 | //
5 | // Created by Sun Shijie on 2017/4/28.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Car.h"
10 |
11 | @interface Car (Fly)
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[1]. block_pass_value/block_practice.xcodeproj/project.xcworkspace/xcuserdata/shijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[1]. block_pass_value/block_practice.xcodeproj/project.xcworkspace/xcuserdata/shijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[25]. containsObject_demo/containsObject_demo/Person.m:
--------------------------------------------------------------------------------
1 | //
2 | // Person.m
3 | // containsObject_demo
4 | //
5 | // Created by Sun Shijie on 2017/6/7.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person.h"
10 |
11 | @implementation Person
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[26]. indexset_demo/indexset_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[26]. indexset_demo/indexset_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[30]. zero_string_delete_demo/zero_string_delete_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[3]. init_and_initWithFrame/init_demo/TestView.h:
--------------------------------------------------------------------------------
1 | //
2 | // TestView.h
3 | // init_demo
4 | //
5 | // Created by Sun Shijie on 2017/2/23.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface TestView : UIView
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[11]. multi_thread_communication/multi_thread_communication.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[1]. block_pass_value/block_practice.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[1]. block_pass_value/block_practice.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[20]. isa_swizzle_demo/[21]. isa_swizzle_demo/Person.m:
--------------------------------------------------------------------------------
1 | //
2 | // Person.m
3 | // [21]. isa_swizzle_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/4.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person.h"
10 |
11 | @implementation Person
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[20]. isa_swizzle_demo/[21]. isa_swizzle_demo/Student.m:
--------------------------------------------------------------------------------
1 | //
2 | // Student.m
3 | // [21]. isa_swizzle_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/4.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Student.h"
10 |
11 | @implementation Student
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj/Assets.xcassets/placeholder.imageset/placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj/Assets.xcassets/placeholder.imageset/placeholder.png
--------------------------------------------------------------------------------
/[40]. superclassdemo/superclassdemo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[40]. superclassdemo/superclassdemo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[40]. superclassdemo/superclassdemo/Son.h:
--------------------------------------------------------------------------------
1 | //
2 | // Son.h
3 | // superclassdemo
4 | //
5 | // Created by Sun Shijie on 2018/5/16.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Father.h"
10 |
11 | @interface Son : Father
12 |
13 | - (void)speak;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/[16]. kvo_array_count/kvo_array_count.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[16]. kvo_array_count/kvo_array_count.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[21]. getClass_and_class/[21]. getClass_and_class/Person.m:
--------------------------------------------------------------------------------
1 | //
2 | // Person.m
3 | // [21]. getClass_and_class
4 | //
5 | // Created by Sun Shijie on 2017/5/4.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person.h"
10 |
11 | @implementation Person
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[28]. setter_getter_demo/property_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[28]. setter_getter_demo/property_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/Person.h:
--------------------------------------------------------------------------------
1 | //
2 | // Person.h
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/20.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "Human.h"
11 |
12 | @interface Person : Human
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/Student+good.h:
--------------------------------------------------------------------------------
1 | //
2 | // Student+good.h
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/20.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Student.h"
10 |
11 | @interface Student (good)
12 |
13 | - (void)frt;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/[35]. message_forward/message_forward.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[35]. message_forward/message_forward.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[3]. init_and_initWithFrame/init_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[3]. init_and_initWithFrame/init_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[5]. associate_object/associate_object.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[5]. associate_object/associate_object.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[7]. oc_js_interaction/oc_js_interaction.xcodeproj/project.xcworkspace/xcuserdata/shijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[7]. oc_js_interaction/oc_js_interaction.xcodeproj/project.xcworkspace/xcuserdata/shijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[9]. custom_segue/customSegue/CustomSegue.h:
--------------------------------------------------------------------------------
1 | //
2 | // CustomSegue.h
3 | // customSegue
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface CustomSegue : UIStoryboardSegue
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[13]. autoresizing_demo/autoresizing_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[13]. autoresizing_demo/autoresizing_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[15]. method_swizzling/method_swizzling.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[15]. method_swizzling/method_swizzling.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[17]. class_addMethod_demo/class_addMethod_demo/Car.h:
--------------------------------------------------------------------------------
1 | //
2 | // Car.h
3 | // class_addMethod_demo
4 | //
5 | // Created by Sun Shijie on 2017/4/28.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Car : NSObject
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[23]. appdelegate_demo/appdelegate_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[23]. appdelegate_demo/appdelegate_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[27]. private_method_demo/private_method.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[27]. private_method_demo/private_method.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[33]. copy_mCopy_array/copy_mCopy_array.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[33]. copy_mCopy_array/copy_mCopy_array.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[37]. cgrectinset_demo/cgrectinset_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[37]. cgrectinset_demo/cgrectinset_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[38]. stringRetainCount/stringRetainCount.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[38]. stringRetainCount/stringRetainCount.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijie.xcodeproj/project.xcworkspace/xcuserdata/shijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[4]. clean_tableview/clean_tableview_shijie.xcodeproj/project.xcworkspace/xcuserdata/shijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[6]. collectionview_masonry_layout/collectionview_masonry_layout.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[7]. oc_js_interaction/oc_js_interaction.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[7]. oc_js_interaction/oc_js_interaction.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[10]. mvvm_kvo_two_way_binding/mvc_delegate_demo_shijie/SJModel.m:
--------------------------------------------------------------------------------
1 | //
2 | // SJModel.m
3 | // mvc_delegate_demo_shijie
4 | //
5 | // Created by Sun Shijie on 2017/1/26.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "SJModel.h"
10 |
11 | @implementation SJModel
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[12]. gcd_demo/gcd_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // gcd_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/6.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[19]. bad_access_demo/[19]. bad_access_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[19]. bad_access_demo/[19]. bad_access_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[25]. containsObject_demo/containsObject_demo/Person.h:
--------------------------------------------------------------------------------
1 | //
2 | // Person.h
3 | // containsObject_demo
4 | //
5 | // Created by Sun Shijie on 2017/6/7.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Person : NSObject
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/PP.m:
--------------------------------------------------------------------------------
1 | //
2 | // PP.m
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/28.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "PP.h"
10 |
11 | @implementation PP
12 |
13 | + (void)load{
14 | NSLog(@"%s", __FUNCTION__);
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijie.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[4]. clean_tableview/clean_tableview_shijie.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[20]. isa_swizzle_demo/[21]. isa_swizzle_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[20]. isa_swizzle_demo/[21]. isa_swizzle_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[25]. containsObject_demo/containsObject_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[25]. containsObject_demo/containsObject_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[32]. find_viewController/find_viewController.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[32]. find_viewController/find_viewController.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/20.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[36]. static_demo/static_demo/Person.m:
--------------------------------------------------------------------------------
1 | //
2 | // Person.m
3 | // static_demo
4 | //
5 | // Created by Sun Shijie on 2018/4/7.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person.h"
10 |
11 | NSString *const standard = @"good";
12 |
13 | @implementation Person
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/[40]. superclassdemo/superclassdemo/Son.m:
--------------------------------------------------------------------------------
1 | //
2 | // Son.m
3 | // superclassdemo
4 | //
5 | // Created by Sun Shijie on 2018/5/16.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Son.h"
10 |
11 | @implementation Son
12 |
13 | - (void)speak{
14 | NSLog(@"speak");
15 | }
16 | @end
17 |
--------------------------------------------------------------------------------
/[17]. class_addMethod_demo/class_addMethod_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[17]. class_addMethod_demo/class_addMethod_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[21]. getClass_and_class/[21]. getClass_and_class/Person.h:
--------------------------------------------------------------------------------
1 | //
2 | // Person.h
3 | // [21]. getClass_and_class
4 | //
5 | // Created by Sun Shijie on 2017/5/4.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Person : NSObject
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[24]. same_color_demo/colorsame/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // colorsame
4 | //
5 | // Created by Sun Shijie on 2017/3/18.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[29]. touch_demo/touch_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // touch_demo
4 | //
5 | // Created by Sun Shijie on 2017/7/25.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[31]. string_demo/string_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // string_demo
4 | //
5 | // Created by Sun Shijie on 2017/7/31.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/Human.m:
--------------------------------------------------------------------------------
1 | //
2 | // Human.m
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/5/6.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Human.h"
10 |
11 | @implementation Human
12 |
13 | + (void)load{
14 | NSLog(@"%s", __FUNCTION__);
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/[36]. static_demo/static_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // static_demo
4 | //
5 | // Created by Sun Shijie on 2018/4/7.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[39]. synthesize/synthesize/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // synthesize
4 | //
5 | // Created by Sun Shijie on 2018/5/19.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[9]. custom_segue/customSegue/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // customSegue
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // [18]. kvc_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[21]. getClass_and_class/[21]. getClass_and_class.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[21]. getClass_and_class/[21]. getClass_and_class.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[26]. indexset_demo/indexset_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // indexset_demo
4 | //
5 | // Created by Sun Shijie on 2017/7/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[27]. private_method_demo/private_method/Person.h:
--------------------------------------------------------------------------------
1 | //
2 | // Person.h
3 | // private_method
4 | //
5 | // Created by Sun Shijie on 2017/6/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Person : NSObject
12 |
13 | - (void)eat;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/People.m:
--------------------------------------------------------------------------------
1 | //
2 | // People.m
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/5/6.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "People.h"
10 |
11 | @implementation People
12 |
13 | + (void)load{
14 | NSLog(@"%s", __FUNCTION__);
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/[40]. superclassdemo/superclassdemo/Father.h:
--------------------------------------------------------------------------------
1 | //
2 | // Father.h
3 | // superclassdemo
4 | //
5 | // Created by Sun Shijie on 2018/5/16.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Father : NSObject
12 |
13 |
14 | - (void)run;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/[40]. superclassdemo/superclassdemo/Father.m:
--------------------------------------------------------------------------------
1 | //
2 | // Father.m
3 | // superclassdemo
4 | //
5 | // Created by Sun Shijie on 2018/5/16.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Father.h"
10 |
11 | @implementation Father
12 |
13 | - (void)run{
14 | NSLog(@"run");
15 | }
16 | @end
17 |
--------------------------------------------------------------------------------
/[1]. block_pass_value/block_practice/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // block_practice
4 | //
5 | // Created by Sun Shijie on 2017/2/8.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[28]. setter_getter_demo/property_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // property_demo
4 | //
5 | // Created by Sun Shijie on 2017/8/9.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[30]. zero_string_delete_demo/zero_string_delete_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[30]. zero_string_delete_demo/zero_string_delete_demo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[3]. init_and_initWithFrame/init_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // init_demo
4 | //
5 | // Created by Sun Shijie on 2017/2/23.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[40]. superclassdemo/superclassdemo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // superclassdemo
4 | //
5 | // Created by Sun Shijie on 2018/5/16.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijie/FriendInfo.m:
--------------------------------------------------------------------------------
1 | //
2 | // FriendInfo.m
3 | // tableview_datasource_seperate_demo
4 | //
5 | // Created by Sun Shijie on 2017/1/24.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "FriendInfo.h"
10 |
11 | @implementation FriendInfo
12 |
13 |
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/[10]. mvvm_kvo_two_way_binding/mvc_delegate_demo_shijie.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[10]. mvvm_kvo_two_way_binding/mvc_delegate_demo_shijie.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[15]. method_swizzling/method_swizzling/UIImage+ImageLoadResult.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+ImageLoadResult.h
3 | // method_swizzling
4 | //
5 | // Created by Sun Shijie on 2017/4/26.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (ImageLoadResult)
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[15]. method_swizzling/method_swizzling/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // method_swizzling
4 | //
5 | // Created by Sun Shijie on 2017/4/26.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[16]. kvo_array_count/kvo_array_count/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // kvo_array_count
4 | //
5 | // Created by Sun Shijie on 2017/4/18.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[23]. appdelegate_demo/appdelegate_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // appdelegate_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/17.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[27]. private_method_demo/private_method/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // private_method
4 | //
5 | // Created by Sun Shijie on 2017/6/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[33]. copy_mCopy_array/copy_mCopy_array/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // copy_mCopy_array
4 | //
5 | // Created by Sun Shijie on 2018/4/2.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[35]. message_forward/message_forward/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // message_forward
4 | //
5 | // Created by Sun Shijie on 2018/3/12.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[37]. cgrectinset_demo/cgrectinset_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // cgrectinset_demo
4 | //
5 | // Created by Sun Shijie on 2018/4/8.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[5]. associate_object/associate_object/Person+Job.h:
--------------------------------------------------------------------------------
1 | //
2 | // Person+Job.h
3 | // associate_object
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person.h"
10 |
11 | @interface Person (Job)
12 | @property (nonatomic, copy) NSString *salary;
13 | @end
14 |
--------------------------------------------------------------------------------
/[5]. associate_object/associate_object/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // associate_object
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[13]. autoresizing_demo/autoresizing_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // autoresizing_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/10.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/Human+Bad.m:
--------------------------------------------------------------------------------
1 | //
2 | // Human+Bad.m
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/5/6.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Human+Bad.h"
10 |
11 | @implementation Human (Bad)
12 |
13 | + (void)load{
14 | NSLog(@"%s", __FUNCTION__);
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/[36]. static_demo/static_demo/Person.h:
--------------------------------------------------------------------------------
1 | //
2 | // Person.h
3 | // static_demo
4 | //
5 | // Created by Sun Shijie on 2018/4/7.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | extern NSString * const standard;
12 |
13 |
14 | @interface Person : NSObject
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/[38]. stringRetainCount/stringRetainCount/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // stringRetainCount
4 | //
5 | // Created by Sun Shijie on 2018/5/16.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[7]. oc_js_interaction/oc_js_interaction/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // oc_js_interaction
4 | //
5 | // Created by Sun Shijie on 2017/3/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[11]. multi_thread_communication/multi_thread_communication.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[11]. multi_thread_communication/multi_thread_communication.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[19]. bad_access_demo/[19]. bad_access_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // [19]. bad_access_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[25]. containsObject_demo/containsObject_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // containsObject_demo
4 | //
5 | // Created by Sun Shijie on 2017/6/7.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[14]. block_lowlevel_analysis/main5.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // block_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | void (^blk)(void) = ^{printf("Global Block\n");};
12 |
13 | int main()
14 | {
15 | blk();
16 | }
17 |
--------------------------------------------------------------------------------
/[14]. block_lowlevel_analysis/main6.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // block_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main()
12 | {
13 | void (^blk)(void) = ^{printf("Global Block\n");};
14 | blk();
15 | }
16 |
--------------------------------------------------------------------------------
/[17]. class_addMethod_demo/class_addMethod_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // class_addMethod_demo
4 | //
5 | // Created by Sun Shijie on 2017/4/28.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demo/Company.h:
--------------------------------------------------------------------------------
1 | //
2 | // Company.h
3 | // [18]. kvc_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Company : NSObject
12 |
13 | @property (nonatomic, copy) NSString *name;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/[20]. isa_swizzle_demo/[21]. isa_swizzle_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // [21]. isa_swizzle_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/4.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijie/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // clean_tableview_shijie
4 | //
5 | // Created by Sun Shijie on 2017/1/25.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UITableViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[10]. mvvm_kvo_two_way_binding/mvc_delegate_demo_shijie/SJViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // SJViewController.h
3 | // mvc_delegate_demo_shijie
4 | //
5 | // Created by Sun Shijie on 2017/1/26.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SJViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[21]. getClass_and_class/[21]. getClass_and_class/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // [21]. getClass_and_class
4 | //
5 | // Created by Sun Shijie on 2017/5/4.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[32]. find_viewController/find_viewController/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // find_viewController
4 | //
5 | // Created by Sun Shijie on 2018/4/3.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 | - (void)log;
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/Human+oridary.m:
--------------------------------------------------------------------------------
1 | //
2 | // Human+oridary.m
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/5/6.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Human+oridary.h"
10 |
11 | @implementation Human (oridary)
12 |
13 | + (void)load{
14 | NSLog(@"%s", __FUNCTION__);
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/PP+lalala.m:
--------------------------------------------------------------------------------
1 | //
2 | // PP+lalala.m
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/28.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "PP+lalala.h"
10 |
11 | @implementation PP (lalala)
12 |
13 |
14 | + (void)load{
15 | NSLog(@"%s", __FUNCTION__);
16 | }
17 |
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/[5]. associate_object/associate_object/Person.h:
--------------------------------------------------------------------------------
1 | //
2 | // Person.h
3 | // associate_object
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Person : NSObject
12 |
13 | @property (nonatomic, copy) NSString *name;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/[6]. collectionview_masonry_layout/collectionview_masonry_layout.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[6]. collectionview_masonry_layout/collectionview_masonry_layout.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[10]. mvvm_kvo_two_way_binding/mvc_delegate_demo_shijie/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // mvc_delegate_demo_shijie
4 | //
5 | // Created by Sun Shijie on 2017/1/26.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[28]. setter_getter_demo/property_demo/Person.h:
--------------------------------------------------------------------------------
1 | //
2 | // Person.h
3 | // property_demo
4 | //
5 | // Created by Sun Shijie on 2017/8/9.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Person : NSObject
12 |
13 | @property (nonatomic, copy) NSString *name;
14 |
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/[30]. zero_string_delete_demo/zero_string_delete_demo/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // zero_string_delete_demo
4 | //
5 | // Created by Sun Shijie on 2017/8/10.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[11]. multi_thread_communication/multi_thread_communication/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // multi_thread_communication
4 | //
5 | // Created by Sun Shijie on 2017/2/28.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[14]. block_lowlevel_analysis/main0.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // block_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | int main()
11 | {
12 | void (^blk)(void) = ^{
13 | printf("Block\n");
14 | };
15 | return 0;
16 | }
17 |
--------------------------------------------------------------------------------
/[39]. synthesize/synthesize/Person.h:
--------------------------------------------------------------------------------
1 | //
2 | // Person.h
3 | // synthesize
4 | //
5 | // Created by Sun Shijie on 2018/5/19.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Person : NSObject
12 |
13 | @property (nonatomic, strong)NSString *name;
14 |
15 | - (void)sayName;
16 | @end
17 |
--------------------------------------------------------------------------------
/[14]. block_lowlevel_analysis/main7.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // block_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main()
12 | {
13 | void (^blk)(void) = ^{printf("Global Block\n");};
14 | blk = [blk copy];
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/[15]. method_swizzling/method_swizzling/UIViewController+LifeCycleTracking.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+LifeCycleTracking.h
3 | // method_swizzling
4 | //
5 | // Created by Sun Shijie on 2017/4/26.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIViewController (LifeCycleTracking)
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[20]. isa_swizzle_demo/[21]. isa_swizzle_demo/Person.h:
--------------------------------------------------------------------------------
1 | //
2 | // Person.h
3 | // [21]. isa_swizzle_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/4.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Person : NSObject
12 |
13 | @property (nonatomic, strong) NSString *name;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj.xcodeproj/project.xcworkspace/xcuserdata/shijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj.xcodeproj/project.xcworkspace/xcuserdata/shijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[7]. oc_js_interaction/oc_js_interaction/JSCallOCViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // JSCallOCViewController.h
3 | // oc_js_interaction
4 | //
5 | // Created by Sun Shijie on 2017/3/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "SSJWebBaseViewController.h"
10 |
11 | @interface JSCallOCViewController : SSJWebBaseViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[7]. oc_js_interaction/oc_js_interaction/OCCallJSViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // OCCallJSViewController.h
3 | // oc_js_interaction
4 | //
5 | // Created by Sun Shijie on 2017/3/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "SSJWebBaseViewController.h"
10 |
11 | @interface OCCallJSViewController :SSJWebBaseViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/knightsj/iOS_Demo/HEAD/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/[35]. message_forward/message_forward/SecondGreetingClass.h:
--------------------------------------------------------------------------------
1 | //
2 | // SecondGreetingClass.h
3 | // message_forward
4 | //
5 | // Created by Sun Shijie on 2018/3/12.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SecondGreetingClass : NSObject
12 |
13 |
14 | - (void)hello;
15 |
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/[39]. synthesize/synthesize/Person.m:
--------------------------------------------------------------------------------
1 | //
2 | // Person.m
3 | // synthesize
4 | //
5 | // Created by Sun Shijie on 2018/5/19.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person.h"
10 |
11 | @implementation Person
12 |
13 | @synthesize name = name1111;
14 |
15 |
16 | - (void)sayName{
17 | NSLog(@"%@",name1111);
18 | }
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/[7]. oc_js_interaction/oc_js_interaction/JSCallOCJSExportViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // JSCallOCJSExportViewController.h
3 | // oc_js_interaction
4 | //
5 | // Created by Sun Shijie on 2017/3/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface JSCallOCJSExportViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/[12]. gcd_demo/gcd_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // gcd_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/6.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/20.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[35]. message_forward/message_forward/GreetingClass.h:
--------------------------------------------------------------------------------
1 | //
2 | // GreetingClass.h
3 | // message_forward
4 | //
5 | // Created by Sun Shijie on 2018/3/12.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface GreetingClass : NSObject
12 |
13 | - (void)hello;
14 |
15 | + (GreetingClass *)hi;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/[32]. find_viewController/find_viewController/UIView+ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+ViewController.h
3 | // find_viewController
4 | //
5 | // Created by Sun Shijie on 2018/4/3.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (ViewController)
12 |
13 | - (UIViewController *)belongingVC;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/[6]. collectionview_masonry_layout/collectionview_masonry_layout/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // collectionview_masonry_layout
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UICollectionViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[10]. mvvm_kvo_two_way_binding/mvc_delegate_demo_shijie/SJModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // SJModel.h
3 | // mvc_delegate_demo_shijie
4 | //
5 | // Created by Sun Shijie on 2017/1/26.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SJModel : NSObject
12 |
13 | @property (nonatomic, assign) NSInteger number;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/[24]. same_color_demo/colorsame/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // colorsame
4 | //
5 | // Created by Sun Shijie on 2017/3/18.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[29]. touch_demo/touch_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // touch_demo
4 | //
5 | // Created by Sun Shijie on 2017/7/25.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[31]. string_demo/string_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // string_demo
4 | //
5 | // Created by Sun Shijie on 2017/7/31.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[32]. find_viewController/find_viewController/SubView.h:
--------------------------------------------------------------------------------
1 | //
2 | // SubView.h
3 | // find_viewController
4 | //
5 | // Created by Sun Shijie on 2018/4/3.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SubView : UIView
12 |
13 | - (UIViewController *)viewController;
14 | - (UIViewController *)belongVC;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/[36]. static_demo/static_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // static_demo
4 | //
5 | // Created by Sun Shijie on 2018/4/7.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[39]. synthesize/synthesize/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // synthesize
4 | //
5 | // Created by Sun Shijie on 2018/5/19.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijie/FriendInfoList.h:
--------------------------------------------------------------------------------
1 | //
2 | // FriendInfoList.h
3 | // tableview_datasource_seperate_demo
4 | //
5 | // Created by Sun Shijie on 2017/1/24.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface FriendInfoList : NSObject
12 |
13 | +(NSArray *)friendInfoList;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/[9]. custom_segue/customSegue/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // customSegue
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // [18]. kvc_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demo/Friend.h:
--------------------------------------------------------------------------------
1 | //
2 | // Friend.h
3 | // [18]. kvc_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Friend : NSObject
12 |
13 | @property (nonatomic, copy) NSString *name;
14 | @property (nonatomic, copy) NSString *sex;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/[26]. indexset_demo/indexset_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // indexset_demo
4 | //
5 | // Created by Sun Shijie on 2017/7/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[3]. init_and_initWithFrame/init_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // init_demo
4 | //
5 | // Created by Sun Shijie on 2017/2/23.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[1]. block_pass_value/block_practice/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // block_practice
4 | //
5 | // Created by Sun Shijie on 2017/2/8.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[28]. setter_getter_demo/property_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // property_demo
4 | //
5 | // Created by Sun Shijie on 2017/8/9.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // multi_image_cache_and_download_demo_ssj
4 | //
5 | // Created by Sun Shijie on 2017/2/15.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UITableViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/[40]. superclassdemo/superclassdemo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // superclassdemo
4 | //
5 | // Created by Sun Shijie on 2018/5/16.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[14]. block_lowlevel_analysis/main3.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // block_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | int main()
13 | {
14 | __block int val = 10;
15 |
16 | void (^blk)(void) = ^{
17 | val = 1;
18 | };
19 | return 0;
20 | }
21 |
--------------------------------------------------------------------------------
/[15]. method_swizzling/method_swizzling/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // method_swizzling
4 | //
5 | // Created by Sun Shijie on 2017/4/26.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[16]. kvo_array_count/kvo_array_count/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // kvo_array_count
4 | //
5 | // Created by Sun Shijie on 2017/4/18.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[23]. appdelegate_demo/appdelegate_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // appdelegate_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/17.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[27]. private_method_demo/private_method/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // private_method
4 | //
5 | // Created by Sun Shijie on 2017/6/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[27]. private_method_demo/private_method/Person.m:
--------------------------------------------------------------------------------
1 | //
2 | // Person.m
3 | // private_method
4 | //
5 | // Created by Sun Shijie on 2017/6/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person.h"
10 |
11 | @implementation Person
12 |
13 |
14 | - (void)eat
15 | {
16 | NSLog(@"eat");
17 | }
18 |
19 | - (void)sleep
20 | {
21 | NSLog(@"sleep");
22 | }
23 | @end
24 |
--------------------------------------------------------------------------------
/[33]. copy_mCopy_array/copy_mCopy_array/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // copy_mCopy_array
4 | //
5 | // Created by Sun Shijie on 2018/4/2.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/Person.m:
--------------------------------------------------------------------------------
1 | //
2 | // Person.m
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/20.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person.h"
10 |
11 | @implementation Person
12 |
13 | //+ (void)initialize {
14 | // NSLog(@"%s", __FUNCTION__);
15 | //}
16 |
17 | + (void)load{
18 | NSLog(@"%s", __FUNCTION__);
19 | }
20 | @end
21 |
--------------------------------------------------------------------------------
/[35]. message_forward/message_forward/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // message_forward
4 | //
5 | // Created by Sun Shijie on 2018/3/12.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[37]. cgrectinset_demo/cgrectinset_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // cgrectinset_demo
4 | //
5 | // Created by Sun Shijie on 2018/4/8.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[5]. associate_object/associate_object/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // associate_object
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[7]. oc_js_interaction/oc_js_interaction/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // oc_js_interaction
4 | //
5 | // Created by Sun Shijie on 2017/3/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[13]. autoresizing_demo/autoresizing_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // autoresizing_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/10.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[38]. stringRetainCount/stringRetainCount/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // stringRetainCount
4 | //
5 | // Created by Sun Shijie on 2018/5/16.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[10]. mvvm_kvo_two_way_binding/mvc_delegate_demo_shijie/SJView.h:
--------------------------------------------------------------------------------
1 | //
2 | // SJView.h
3 | // mvc_delegate_demo_shijie
4 | //
5 | // Created by Sun Shijie on 2017/1/26.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class SJViewModel;
12 |
13 | @interface SJView : UIView
14 |
15 | - (instancetype)initWithViewModel:(SJViewModel *)viewModel;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/[19]. bad_access_demo/[19]. bad_access_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // [19]. bad_access_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[20]. isa_swizzle_demo/[21]. isa_swizzle_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // [21]. isa_swizzle_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/4.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[25]. containsObject_demo/containsObject_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // containsObject_demo
4 | //
5 | // Created by Sun Shijie on 2017/6/7.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[32]. find_viewController/find_viewController/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // find_viewController
4 | //
5 | // Created by Sun Shijie on 2018/4/3.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/Student.m:
--------------------------------------------------------------------------------
1 | //
2 | // Student.m
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/20.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Student.h"
10 |
11 | @implementation Student
12 |
13 | //+ (void)initialize {
14 | // NSLog(@"%s", __FUNCTION__);
15 | //}
16 |
17 | + (void)load{
18 | NSLog(@"%s", __FUNCTION__);
19 | }
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijie/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // clean_tableview_shijie
4 | //
5 | // Created by Sun Shijie on 2017/1/25.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[17]. class_addMethod_demo/class_addMethod_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // class_addMethod_demo
4 | //
5 | // Created by Sun Shijie on 2017/4/28.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[12]. gcd_demo/gcd_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // gcd_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/6.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[21]. getClass_and_class/[21]. getClass_and_class/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // [21]. getClass_and_class
4 | //
5 | // Created by Sun Shijie on 2017/5/4.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[30]. zero_string_delete_demo/zero_string_delete_demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // zero_string_delete_demo
4 | //
5 | // Created by Sun Shijie on 2017/8/10.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/20.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[10]. mvvm_kvo_two_way_binding/mvc_delegate_demo_shijie/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // mvc_delegate_demo_shijie
4 | //
5 | // Created by Sun Shijie on 2017/1/26.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[40]. superclassdemo/superclassdemo/SJApplication.h:
--------------------------------------------------------------------------------
1 | //
2 | // SJApplication.h
3 | // superclassdemo
4 | //
5 | // Created by Sun Shijie on 2018/5/16.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SJApplication : UIApplication
12 |
13 | @property (nonatomic, copy) NSString *name;
14 |
15 | + (UIApplication *)sharedApplication;
16 | - (void)run;
17 | @end
18 |
--------------------------------------------------------------------------------
/[11]. multi_thread_communication/multi_thread_communication/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // multi_thread_communication
4 | //
5 | // Created by Sun Shijie on 2017/2/28.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[24]. same_color_demo/colorsame/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // colorsame
4 | //
5 | // Created by Sun Shijie on 2017/3/18.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[29]. touch_demo/touch_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // touch_demo
4 | //
5 | // Created by Sun Shijie on 2017/7/25.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[31]. string_demo/string_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // string_demo
4 | //
5 | // Created by Sun Shijie on 2017/7/31.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/Person+man.m:
--------------------------------------------------------------------------------
1 | //
2 | // Person+man.m
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/20.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person+man.h"
10 |
11 | @implementation Person (man)
12 |
13 | //+ (void)initialize {
14 | // NSLog(@"%s", __FUNCTION__);
15 | //}
16 | //
17 |
18 | + (void)load{
19 | NSLog(@"%s", __FUNCTION__);
20 | }
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/[35]. message_forward/message_forward/SecondGreetingClass.m:
--------------------------------------------------------------------------------
1 | //
2 | // SecondGreetingClass.m
3 | // message_forward
4 | //
5 | // Created by Sun Shijie on 2018/3/12.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "SecondGreetingClass.h"
10 |
11 | @implementation SecondGreetingClass
12 |
13 | - (void)hello
14 | {
15 | NSLog(@"second greeting : %@, %p", self, _cmd);
16 | }
17 |
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/[36]. static_demo/static_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // static_demo
4 | //
5 | // Created by Sun Shijie on 2018/4/7.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[39]. synthesize/synthesize/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // synthesize
4 | //
5 | // Created by Sun Shijie on 2018/5/19.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[9]. custom_segue/customSegue/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // customSegue
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // [18]. kvc_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[26]. indexset_demo/indexset_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // indexset_demo
4 | //
5 | // Created by Sun Shijie on 2017/7/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/Student+good.m:
--------------------------------------------------------------------------------
1 | //
2 | // Student+good.m
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/20.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Student+good.h"
10 |
11 | @implementation Student (good)
12 | //
13 | //+ (void)initialize {
14 | // NSLog(@"%s", __FUNCTION__);
15 | //}
16 | //
17 | + (void)load{
18 | NSLog(@"%s", __FUNCTION__);
19 | }
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/[3]. init_and_initWithFrame/init_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // init_demo
4 | //
5 | // Created by Sun Shijie on 2017/2/23.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[40]. superclassdemo/superclassdemo/SJApplication.m:
--------------------------------------------------------------------------------
1 | //
2 | // SJApplication.m
3 | // superclassdemo
4 | //
5 | // Created by Sun Shijie on 2018/5/16.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "SJApplication.h"
10 |
11 | @implementation SJApplication
12 |
13 | + (UIApplication *)sharedApplication{
14 | return [[SJApplication alloc] init];
15 | }
16 |
17 | - (void)run{
18 |
19 | }
20 | @end
21 |
--------------------------------------------------------------------------------
/[1]. block_pass_value/block_practice/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // block_practice
4 | //
5 | // Created by Sun Shijie on 2017/2/8.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[28]. setter_getter_demo/property_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // property_demo
4 | //
5 | // Created by Sun Shijie on 2017/8/9.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[40]. superclassdemo/superclassdemo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // superclassdemo
4 | //
5 | // Created by Sun Shijie on 2018/5/16.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[6]. collectionview_masonry_layout/collectionview_masonry_layout/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // collectionview_masonry_layout
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[10]. mvvm_kvo_two_way_binding/mvc_delegate_demo_shijie/SJViewModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // SJViewModel.h
3 | // mvc_delegate_demo_shijie
4 | //
5 | // Created by Sun Shijie on 2017/1/26.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SJViewModel : NSObject
12 |
13 | @property (nonatomic, copy, readonly) NSString *contentStr;
14 |
15 | - (void)networkRequest;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/[15]. method_swizzling/method_swizzling/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // method_swizzling
4 | //
5 | // Created by Sun Shijie on 2017/4/26.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[16]. kvo_array_count/kvo_array_count/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // kvo_array_count
4 | //
5 | // Created by Sun Shijie on 2017/4/18.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demo/Product.h:
--------------------------------------------------------------------------------
1 | //
2 | // Product.h
3 | // [18]. kvc_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Product : NSObject
12 | @property (nonatomic, copy) NSString *name;
13 | @property (nonatomic, copy) NSString *price;
14 |
15 | - (instancetype)initWithPrice:(NSString *)price;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/[23]. appdelegate_demo/appdelegate_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // appdelegate_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/17.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[27]. private_method_demo/private_method/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // private_method
4 | //
5 | // Created by Sun Shijie on 2017/6/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[33]. copy_mCopy_array/copy_mCopy_array/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // copy_mCopy_array
4 | //
5 | // Created by Sun Shijie on 2018/4/2.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[35]. message_forward/message_forward/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // message_forward
4 | //
5 | // Created by Sun Shijie on 2018/3/12.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[37]. cgrectinset_demo/cgrectinset_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // cgrectinset_demo
4 | //
5 | // Created by Sun Shijie on 2018/4/8.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[5]. associate_object/associate_object/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // associate_object
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[7]. oc_js_interaction/oc_js_interaction/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // oc_js_interaction
4 | //
5 | // Created by Sun Shijie on 2017/3/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[13]. autoresizing_demo/autoresizing_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // autoresizing_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/10.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[38]. stringRetainCount/stringRetainCount/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // stringRetainCount
4 | //
5 | // Created by Sun Shijie on 2018/5/16.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijie/FriendInfo.h:
--------------------------------------------------------------------------------
1 | //
2 | // FriendInfo.h
3 | // tableview_datasource_seperate_demo
4 | //
5 | // Created by Sun Shijie on 2017/1/24.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "FriendTableViewCell.h"
11 |
12 | @interface FriendInfo : NSObject
13 |
14 | @property (nonatomic, copy) NSString *name;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demo/Product.m:
--------------------------------------------------------------------------------
1 | //
2 | // Product.m
3 | // [18]. kvc_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Product.h"
10 |
11 | @implementation Product
12 |
13 | - (instancetype)initWithPrice:(NSString *)price
14 | {
15 | self = [super init];
16 | if (self) {
17 | _price = price;
18 | }
19 | return self;
20 | }
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/[19]. bad_access_demo/[19]. bad_access_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // [19]. bad_access_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[20]. isa_swizzle_demo/[21]. isa_swizzle_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // [21]. isa_swizzle_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/4.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[25]. containsObject_demo/containsObject_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // containsObject_demo
4 | //
5 | // Created by Sun Shijie on 2017/6/7.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[32]. find_viewController/find_viewController/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // find_viewController
4 | //
5 | // Created by Sun Shijie on 2018/4/3.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijie/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // clean_tableview_shijie
4 | //
5 | // Created by Sun Shijie on 2017/1/25.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[17]. class_addMethod_demo/class_addMethod_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // class_addMethod_demo
4 | //
5 | // Created by Sun Shijie on 2017/4/28.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // multi_image_cache_and_download_demo_ssj
4 | //
5 | // Created by Sun Shijie on 2017/2/15.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/[1]. block_pass_value/block_practice/Assets.xcassets/avatar.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "avatar.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/[21]. getClass_and_class/[21]. getClass_and_class/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // [21]. getClass_and_class
4 | //
5 | // Created by Sun Shijie on 2017/5/4.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[30]. zero_string_delete_demo/zero_string_delete_demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // zero_string_delete_demo
4 | //
5 | // Created by Sun Shijie on 2017/8/10.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[10]. mvvm_kvo_two_way_binding/mvc_delegate_demo_shijie/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // mvc_delegate_demo_shijie
4 | //
5 | // Created by Sun Shijie on 2017/1/26.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[11]. multi_thread_communication/multi_thread_communication/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // multi_thread_communication
4 | //
5 | // Created by Sun Shijie on 2017/2/28.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijie/Assets.xcassets/avatar.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "WechatIMG1.jpeg",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/[11]. multi_thread_communication/multi_thread_communication/Person.h:
--------------------------------------------------------------------------------
1 | //
2 | // Person.h
3 | // multi_thread_communication
4 | //
5 | // Created by Sun Shijie on 2017/2/28.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | @class Card;
11 |
12 | @interface Person : NSObject
13 |
14 | @property (nonatomic, strong, readonly) NSArray *cards;
15 |
16 | - (void)addCard:(Card *)card;
17 | - (void)printAllCards;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/[14]. block_lowlevel_analysis/main4.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // block_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | int main()
13 | {
14 | __block int val = 10;
15 |
16 | void (^blk0)(void) = ^{
17 | val = 12;
18 | };
19 |
20 | void (^blk1)(void) = ^{
21 | val = 13;
22 | };
23 | return 0;
24 | }
25 |
--------------------------------------------------------------------------------
/[20]. isa_swizzle_demo/[21]. isa_swizzle_demo/Student.h:
--------------------------------------------------------------------------------
1 | //
2 | // Student.h
3 | // [21]. isa_swizzle_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/4.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Student : NSObject
12 |
13 | @property (nonatomic, copy) NSString *schoolName;
14 | @property (nonatomic, copy) NSString *gradeName;
15 | @property (nonatomic, copy) NSString *className;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | loadDemo.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/[6]. collectionview_masonry_layout/collectionview_masonry_layout/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // collectionview_masonry_layout
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[14]. block_lowlevel_analysis/main9.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // block_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void(^blk_t)();
12 |
13 | int main()
14 | {
15 | __block id obj = [[NSObject alloc] init];
16 |
17 | blk_t blk = ^{
18 |
19 | NSLog(@"%@",obj);
20 |
21 | };
22 |
23 | blk();
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/[36]. static_demo/static_demo.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | static_demo.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/[39]. synthesize/synthesize.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | synthesize.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/[11]. multi_thread_communication/multi_thread_communication/Card.h:
--------------------------------------------------------------------------------
1 | //
2 | // Card.h
3 | // multi_thread_communication
4 | //
5 | // Created by Sun Shijie on 2017/2/28.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Card : NSObject
12 |
13 | @property (nonatomic, strong) NSThread *thread;
14 | @property (nonatomic, assign) NSUInteger index;
15 |
16 | - (instancetype)initWithIndex:(NSUInteger)index;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijie/FriendTableViewCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // FriendTableViewCell.h
3 | // tableview_datasource_seperate_demo
4 | //
5 | // Created by Sun Shijie on 2017/1/24.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @protocol SimpleCellLayoutDelegate
12 | @end
13 |
14 | @interface FriendTableViewCell : UITableViewCell
15 |
16 | - (void)configureWithInfo:(id)info;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/[40]. superclassdemo/superclassdemo.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | superclassdemo.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj/Assets.xcassets/avatar.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "avatar.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // multi_image_cache_and_download_demo_ssj
4 | //
5 | // Created by Sun Shijie on 2017/2/15.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/[33]. copy_mCopy_array/copy_mCopy_array.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | copy_mCopy_array.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/[35]. message_forward/message_forward.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | message_forward.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/[37]. cgrectinset_demo/cgrectinset_demo.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | cgrectinset_demo.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/[38]. stringRetainCount/stringRetainCount.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | stringRetainCount.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/[10]. mvvm_kvo_two_way_binding/mvc_delegate_demo_shijie/FBKVOController/KVOController.h:
--------------------------------------------------------------------------------
1 | /**
2 | Copyright (c) 2014-present, Facebook, Inc.
3 | All rights reserved.
4 |
5 | This source code is licensed under the BSD-style license found in the
6 | LICENSE file in the root directory of this source tree. An additional grant
7 | of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | //#import
11 | //#import
12 |
--------------------------------------------------------------------------------
/[1]. block_pass_value/block_practice/SecondViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // SecondViewController.h
3 | // block_practice
4 | //
5 | // Created by Sun Shijie on 2017/2/9.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void (^PassValueBlock)(NSString *string);
12 |
13 | @interface SecondViewController : UIViewController
14 |
15 | @property (nonatomic, copy) PassValueBlock block;
16 |
17 | - (void)passValueWithBlock:(PassValueBlock)block;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj/Assets.xcassets/placeholder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "placeholder.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/[32]. find_viewController/find_viewController.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | find_viewController.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/[28]. setter_getter_demo/property_demo/Person.m:
--------------------------------------------------------------------------------
1 | //
2 | // Person.m
3 | // property_demo
4 | //
5 | // Created by Sun Shijie on 2017/8/9.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person.h"
10 |
11 | @interface Person()
12 |
13 |
14 |
15 | @end
16 |
17 |
18 | @implementation Person
19 |
20 | @synthesize name=_name;
21 |
22 | - (void)setName:(NSString *)name
23 | {
24 | _name = name;
25 | }
26 |
27 | - (NSString *)name
28 | {
29 | return self.name;
30 | }
31 |
32 | @end
33 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demo/Person.h:
--------------------------------------------------------------------------------
1 | //
2 | // Person.h
3 | // [18]. kvc_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Person : NSObject
12 | {
13 | NSString *_sex;
14 | }
15 |
16 | @property (nonatomic, copy) NSString *name;
17 | @property (nonatomic, assign) NSInteger money;
18 | @property (nonatomic, copy) NSArray *friends;
19 | @property (nonatomic, copy) NSArray *products;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/[14]. block_lowlevel_analysis/main2.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // block_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int global_val = 1;//全局变量
12 | static int static_global_val = 2;//全局静态变量
13 |
14 | int main()
15 | {
16 | static int static_val = 3;//静态变量
17 |
18 | void (^blk)(void) = ^{
19 | global_val *=1;
20 | static_global_val *=2;
21 | static_val *=3;
22 | };
23 | return 0;
24 | }
25 |
--------------------------------------------------------------------------------
/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj/AppInfoModel.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppInfoModel.m
3 | // multi_image_cache_and_download_demo_ssj
4 | //
5 | // Created by Sun Shijie on 2017/2/15.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "AppInfoModel.h"
10 |
11 | @implementation AppInfoModel
12 |
13 | +(instancetype)appWithDict:(NSDictionary *)dict
14 | {
15 | AppInfoModel *appInfo = [[AppInfoModel alloc]init];
16 | [appInfo setValuesForKeysWithDictionary:dict];
17 |
18 | return appInfo;
19 | }
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/[14]. block_lowlevel_analysis/main1.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // block_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main()
12 | {
13 | int dmy = 256;
14 | int val = 10;
15 |
16 | const char *fmt = "var = %d\n";
17 |
18 | void (^blk)(void) = ^{
19 | printf(fmt,val);
20 | };
21 |
22 | val = 2;
23 | fmt = "These values were changed. var = %d\n";
24 |
25 | blk();
26 |
27 | return 0;
28 | }
29 |
--------------------------------------------------------------------------------
/[2]. multi_image_cache_and_download/multi_image_cache_and_download_demo_ssj/AppInfoModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppInfoModel.h
3 | // multi_image_cache_and_download_demo_ssj
4 | //
5 | // Created by Sun Shijie on 2017/2/15.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppInfoModel : NSObject
12 |
13 | @property (nonatomic, copy) NSString *name;
14 | @property (nonatomic, copy) NSString *icon;
15 | @property (nonatomic, copy) NSString *download;
16 |
17 | +(instancetype)appWithDict:(NSDictionary *)dict;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/[5]. associate_object/associate_object/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // associate_object
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 | #import "Person.h"
11 | #import "Person+Job.h"
12 |
13 |
14 | @interface ViewController ()
15 |
16 | @end
17 |
18 | @implementation ViewController
19 |
20 | - (void)viewDidLoad {
21 | [super viewDidLoad];
22 | Person *p = [[Person alloc]init];
23 | p.salary = @"12k";
24 | NSLog(@"薪水是:%@",p.salary);
25 | }
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/[5]. associate_object/associate_object/Person+Job.m:
--------------------------------------------------------------------------------
1 | //
2 | // Person+Job.m
3 | // associate_object
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Person+Job.h"
10 | #import
11 |
12 | static char salaryKey;
13 |
14 | @implementation Person (Job)
15 |
16 | - (NSString *)salary
17 | {
18 | return objc_getAssociatedObject(self, &salaryKey);
19 | }
20 |
21 | - (void)setSalary:(NSString *)salary
22 | {
23 | objc_setAssociatedObject(self, &salaryKey, salary, OBJC_ASSOCIATION_COPY);
24 | }
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/[29]. touch_demo/touch_demo/SuperView.m:
--------------------------------------------------------------------------------
1 | //
2 | // SuperView.m
3 | // touch_demo
4 | //
5 | // Created by Sun Shijie on 2017/7/25.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "SuperView.h"
10 |
11 | @implementation SuperView
12 |
13 | /*
14 | // Only override drawRect: if you perform custom drawing.
15 | // An empty implementation adversely affects performance during animation.
16 | - (void)drawRect:(CGRect)rect {
17 | // Drawing code
18 | }
19 | */
20 |
21 | -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
22 | {
23 | NSLog(@"父视图被点击了");
24 | }
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/[3]. init_and_initWithFrame/init_demo/TestView.m:
--------------------------------------------------------------------------------
1 | //
2 | // TestView.m
3 | // init_demo
4 | //
5 | // Created by Sun Shijie on 2017/2/23.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "TestView.h"
10 |
11 | @implementation TestView
12 |
13 | - (instancetype)init{
14 | self = [super init];
15 | if (self) {
16 | NSLog(@"调用了 init");
17 | };
18 | return self;
19 | }
20 |
21 | - (instancetype)initWithFrame:(CGRect)frame{
22 | self = [super initWithFrame:frame];
23 | if (self) {
24 | NSLog(@"调用了 initWithFrame:");
25 | }
26 | return self;
27 | }
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/[31]. string_demo/string_demo.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
8 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/[11]. multi_thread_communication/multi_thread_communication/Card.m:
--------------------------------------------------------------------------------
1 | //
2 | // Card.m
3 | // multi_thread_communication
4 | //
5 | // Created by Sun Shijie on 2017/2/28.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Card.h"
10 |
11 | @implementation Card
12 |
13 | - (instancetype)initWithIndex:(NSUInteger)index
14 | {
15 | self = [super init];
16 | if (self) {
17 | for (NSInteger index = 0; index < 1000; index++) {
18 |
19 | }
20 | self.thread = [NSThread currentThread];
21 | self.index = index;
22 | }
23 | return self;
24 | }
25 |
26 |
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/[3]. init_and_initWithFrame/init_demo/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // init_demo
4 | //
5 | // Created by Sun Shijie on 2017/2/23.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 | #import "TestView.h"
11 |
12 | @interface ViewController ()
13 |
14 | @end
15 |
16 | @implementation ViewController
17 |
18 | - (void)viewDidLoad {
19 |
20 | [super viewDidLoad];
21 |
22 | TestView *view = [[TestView alloc] init];
23 | view.frame = CGRectMake(100, 100, 100, 100);
24 | view.backgroundColor = [UIColor whiteColor];
25 | [self.view addSubview:view];
26 | }
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/[9]. custom_segue/customSegue/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // customSegue
4 | //
5 | // Created by Sun Shijie on 2017/2/27.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 |
11 | @interface ViewController ()
12 |
13 | @end
14 |
15 | @implementation ViewController
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 | // Do any additional setup after loading the view, typically from a nib.
20 | }
21 |
22 |
23 | - (void)didReceiveMemoryWarning {
24 | [super didReceiveMemoryWarning];
25 | // Dispose of any resources that can be recreated.
26 | }
27 |
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/[11]. multi_thread_communication/multi_thread_communication.xcodeproj/xcuserdata/SunShijie.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
8 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/[28]. setter_getter_demo/property_demo/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // property_demo
4 | //
5 | // Created by Sun Shijie on 2017/8/9.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 |
11 | @interface ViewController ()
12 |
13 | @end
14 |
15 | @implementation ViewController
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 | // Do any additional setup after loading the view, typically from a nib.
20 | }
21 |
22 |
23 | - (void)didReceiveMemoryWarning {
24 | [super didReceiveMemoryWarning];
25 | // Dispose of any resources that can be recreated.
26 | }
27 |
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/[23]. appdelegate_demo/appdelegate_demo/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // appdelegate_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/17.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 |
11 | @interface ViewController ()
12 |
13 | @end
14 |
15 | @implementation ViewController
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 | // Do any additional setup after loading the view, typically from a nib.
20 | }
21 |
22 |
23 | - (void)didReceiveMemoryWarning {
24 | [super didReceiveMemoryWarning];
25 | // Dispose of any resources that can be recreated.
26 | }
27 |
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/[14]. block_lowlevel_analysis/main8.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // block_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void(^blk_t)(id object);
12 |
13 | int main()
14 | {
15 | blk_t blk;
16 | {
17 | id array = [NSMutableArray new];
18 | blk = [^(id object){
19 | [array addObject:object];
20 | NSLog(@"array count = %ld",[array count]);
21 |
22 | } copy];
23 | }
24 |
25 | blk([NSObject new]);
26 | blk([NSObject new]);
27 | blk([NSObject new]);
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/[14]. block_lowlevel_analysis/main10.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // block_demo
4 | //
5 | // Created by Sun Shijie on 2017/3/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void(^blk_t)(id object);
12 |
13 | int main()
14 | {
15 | blk_t blk;
16 | {
17 | id array = [NSMutableArray new];
18 | id __weak array2 = array;
19 | blk = ^(id object){
20 | [array2 addObject:object];
21 | NSLog(@"array count = %ld",[array2 count]);
22 | };
23 | }
24 |
25 | blk([NSObject new]);
26 | blk([NSObject new]);
27 | blk([NSObject new]);
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/[17]. class_addMethod_demo/class_addMethod_demo/Car+Fly.m:
--------------------------------------------------------------------------------
1 | //
2 | // Car+Fly.m
3 | // class_addMethod_demo
4 | //
5 | // Created by Sun Shijie on 2017/4/28.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "Car+Fly.h"
10 | #import
11 |
12 | void beginToFly(id self, SEL _cmd) {
13 | NSLog(@"begin to fly");
14 | }
15 |
16 |
17 | @implementation Car (Fly)
18 |
19 | + (BOOL)resolveInstanceMethod:(SEL)sel {
20 | //如果是fly方法,目前没有,于是就添加一个fly方法
21 | if (sel == @selector(fly)) {
22 | class_addMethod([self class], sel, (IMP)beginToFly, "v@:");
23 | return YES;
24 | }
25 | return [super resolveInstanceMethod:sel];
26 | }
27 |
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijie/FriendsListDataSource.h:
--------------------------------------------------------------------------------
1 | //
2 | // FriendsListDataSource.h
3 | // tableview_datasource_seperate_demo
4 | //
5 | // Created by Sun Shijie on 2017/1/24.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | typedef void (^TableViewCellConfigureBlock)(id cell, id item);
13 |
14 | @interface FriendsListDataSource : NSObject
15 |
16 | - (id)initWithItems:(NSArray *)items
17 | cellIndentifier:(NSString *)cellIdentifier
18 | configureBlock:(TableViewCellConfigureBlock)configureBlock;
19 |
20 | - (id)itemAtIndexPath:(NSIndexPath *)indexPath;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/[32]. find_viewController/find_viewController/UIView+ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+ViewController.m
3 | // find_viewController
4 | //
5 | // Created by Sun Shijie on 2018/4/3.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "UIView+ViewController.h"
10 |
11 | @implementation UIView (ViewController)
12 |
13 | - (UIViewController *)belongingVC{
14 |
15 | id target = self;
16 |
17 | while (target) {
18 |
19 | target = ((UIResponder *)target).nextResponder;
20 |
21 | if ([target isKindOfClass:[UIViewController class]]) {
22 | return target;
23 | }
24 | }
25 |
26 | return nil;
27 | }
28 |
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/[19]. bad_access_demo/[19]. bad_access_demo/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // [19]. bad_access_demo
4 | //
5 | // Created by Sun Shijie on 2017/5/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 |
11 | @interface ViewController ()
12 |
13 |
14 | @end
15 |
16 | @implementation ViewController
17 |
18 | - (void)viewDidLoad
19 | {
20 | [super viewDidLoad];
21 |
22 | NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:5];
23 | [array release];
24 | [array addObject:@""];
25 | }
26 |
27 |
28 | - (IBAction)jump:(id)sender {
29 |
30 | }
31 |
32 |
33 | - (IBAction)post:(id)sender {
34 |
35 | }
36 |
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/[7]. oc_js_interaction/oc_js_interaction/Calculator.h:
--------------------------------------------------------------------------------
1 | //
2 | // Calculator.h
3 | // oc_js_interaction
4 | //
5 | // Created by Sun Shijie on 2017/3/2.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @protocol JSExportProtocol
13 |
14 | //将OC的方法名转换为JS的方法名
15 | JSExportAs(add, - (NSInteger)a:(NSInteger)a addB:(NSInteger)b);
16 | JSExportAs(subtract, - (NSInteger)a:(NSInteger)a minusB:(NSInteger)b);
17 |
18 | @property (nonatomic, assign) NSInteger sum;
19 | @property (nonatomic, assign) NSInteger subtraction;
20 |
21 | @end
22 |
23 |
24 | @interface Calculator : NSObject
25 | @end
26 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemo/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // loadDemo
4 | //
5 | // Created by Sun Shijie on 2018/3/20.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 | #import "Student.h"
11 |
12 | @interface ViewController ()
13 |
14 | @end
15 |
16 | @implementation ViewController
17 |
18 | - (void)viewDidLoad {
19 | [super viewDidLoad];
20 | // Do any additional setup after loading the view, typically from a nib.
21 | Student *student = [[Student alloc] init];
22 | }
23 |
24 |
25 | - (void)didReceiveMemoryWarning {
26 | [super didReceiveMemoryWarning];
27 | // Dispose of any resources that can be recreated.
28 | }
29 |
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/[39]. synthesize/synthesize/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // synthesize
4 | //
5 | // Created by Sun Shijie on 2018/5/19.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 | #import "Person.h"
11 | @interface ViewController ()
12 |
13 | @end
14 |
15 | @implementation ViewController
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 | // Do any additional setup after loading the view, typically from a nib.
20 | Person *p = [[Person alloc] init];
21 | p.name = @"sdfsdf";
22 | [p sayName];
23 | }
24 |
25 |
26 | - (void)didReceiveMemoryWarning {
27 | [super didReceiveMemoryWarning];
28 | // Dispose of any resources that can be recreated.
29 | }
30 |
31 |
32 | @end
33 |
--------------------------------------------------------------------------------
/[35]. message_forward/message_forward/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // message_forward
4 | //
5 | // Created by Sun Shijie on 2018/3/12.
6 | // Copyright © 2018年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 | #import "GreetingClass.h"
11 |
12 | @interface ViewController ()
13 |
14 | @end
15 |
16 | @implementation ViewController
17 |
18 | - (void)viewDidLoad {
19 | [super viewDidLoad];
20 | // Do any additional setup after loading the view, typically from a nib.
21 | GreetingClass *instance = [[GreetingClass alloc] init];
22 | [instance hello];
23 | }
24 |
25 |
26 | - (void)didReceiveMemoryWarning {
27 | [super didReceiveMemoryWarning];
28 | // Dispose of any resources that can be recreated.
29 | }
30 |
31 |
32 | @end
33 |
--------------------------------------------------------------------------------
/[12]. gcd_demo/gcd_demoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[12]. gcd_demo/gcd_demoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[7]. oc_js_interaction/oc_js_interaction/oc_call_js.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
8 | J_Knight OC调用JS代码
9 |
10 |
11 |
12 |
13 |
点击导航栏右侧的按钮,让下面的数字+1
14 |
0
15 |
16 |
17 |
18 |
26 |
27 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[24]. same_color_demo/colorsameTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[27]. private_method_demo/private_method/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // private_method
4 | //
5 | // Created by Sun Shijie on 2017/6/20.
6 | // Copyright © 2017年 Shijie. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 | #import "Person.h"
11 |
12 | @interface ViewController ()
13 |
14 | @end
15 |
16 | @implementation ViewController
17 |
18 | - (void)viewDidLoad {
19 | [super viewDidLoad];
20 | // Do any additional setup after loading the view, typically from a nib.
21 | Person *p = [[Person alloc] init];
22 | [p eat];
23 | [p performSelector:@selector(sleep)];
24 | }
25 |
26 |
27 | - (void)didReceiveMemoryWarning {
28 | [super didReceiveMemoryWarning];
29 | // Dispose of any resources that can be recreated.
30 | }
31 |
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/[29]. touch_demo/touch_demoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[29]. touch_demo/touch_demoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[31]. string_demo/string_demoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[31]. string_demo/string_demoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[9]. custom_segue/customSegueTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[9]. custom_segue/customSegueUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[12]. gcd_demo/gcd_demo/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------
/[1]. block_pass_value/block_practiceTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[24]. same_color_demo/colorsameUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[26]. indexset_demo/indexset_demoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[26]. indexset_demo/indexset_demoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[13]. autoresizing_demo/autoresizing_demoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[15]. method_swizzling/method_swizzlingTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[15]. method_swizzling/method_swizzlingUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[16]. kvo_array_count/kvo_array_countTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[16]. kvo_array_count/kvo_array_countUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[1]. block_pass_value/block_practiceUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[23]. appdelegate_demo/appdelegate_demoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[23]. appdelegate_demo/appdelegate_demoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[27]. private_method_demo/private_methodTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[28]. setter_getter_demo/property_demoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[28]. setter_getter_demo/property_demoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[29]. touch_demo/touch_demo/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------
/[3]. init_and_initWithFrame/init_demoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[3]. init_and_initWithFrame/init_demoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[5]. associate_object/associate_objectTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[5]. associate_object/associate_objectUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[7]. oc_js_interaction/oc_js_interactionTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[13]. autoresizing_demo/autoresizing_demoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[18]. kvc_demo/[18]. kvc_demo/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------
/[19]. bad_access_demo/[19]. bad_access_demoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[19]. bad_access_demo/[19]. bad_access_demoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[20]. isa_swizzle_demo/[21]. isa_swizzle_demoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[24]. same_color_demo/colorsame/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------
/[25]. containsObject_demo/containsObject_demoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[26]. indexset_demo/indexset_demo/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------
/[27]. private_method_demo/private_methodUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[31]. string_demo/string_demo/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[34]. loadDemo/loadDemoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijieTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[4]. clean_tableview/clean_tableview_shijieUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[7]. oc_js_interaction/oc_js_interactionUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[9]. custom_segue/customSegue/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------
/[16]. kvo_array_count/kvo_array_count/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------
/[17]. class_addMethod_demo/class_addMethod_demoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[17]. class_addMethod_demo/class_addMethod_demoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[20]. isa_swizzle_demo/[21]. isa_swizzle_demoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[21]. getClass_and_class/[21]. getClass_and_classTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[21]. getClass_and_class/[21]. getClass_and_classUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[25]. containsObject_demo/containsObject_demoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/[28]. setter_getter_demo/property_demo/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------