├── [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 | } --------------------------------------------------------------------------------