From 212629217da23e65b9d30de34f1839be897e7ee9 Mon Sep 17 00:00:00 2001 From: MichoChan <15755396353@163.com> Date: Wed, 26 Oct 2016 22:29:44 +0800 Subject: [PATCH 1/2] second and third homework --- .../project02/MyPaint/MyView.m" | 14 +- .../project02/MyPaint/main.m" | 2 +- .../CJCal.xcodeproj/project.pbxproj" | 345 ++++++++++++++++++ .../project02/CJCal/AppDelegate.h" | 17 + .../project02/CJCal/AppDelegate.m" | 56 +++ .../AppIcon.appiconset/Contents.json" | 73 ++++ .../CJCal/Base.lproj/LaunchScreen.storyboard" | 27 ++ .../CJCal/Base.lproj/Main.storyboard" | 61 ++++ .../project02/CJCal/CJView.h" | 13 + .../project02/CJCal/CJView.m" | 37 ++ .../project02/CJCal/Info.plist" | 47 +++ .../project02/CJCal/ViewController.h" | 15 + .../project02/CJCal/ViewController.m" | 50 +++ .../project02/CJCal/main.m" | 16 + .../project02/libmycal.framework/Headers" | 1 + .../project02/libmycal.framework/Info.plist" | Bin 0 -> 759 bytes .../Modules/module.modulemap" | 6 + .../Versions/A/Headers/Calendar.h" | 58 +++ .../Versions/A/Headers/ErrroMsg.h" | 19 + .../Versions/A/Headers/libmycal.h" | 22 ++ .../libmycal.framework/Versions/Current" | 1 + .../project02/libmycal.framework/libmycal" | Bin 0 -> 24780 bytes .../MyTaskList.xcodeproj/project.pbxproj" | 316 ++++++++++++++++ .../project03/MyTaskList/AppDelegate.h" | 17 + .../project03/MyTaskList/AppDelegate.m" | 47 +++ .../AppIcon.appiconset/Contents.json" | 73 ++++ .../Base.lproj/LaunchScreen.storyboard" | 27 ++ .../MyTaskList/Base.lproj/Main.storyboard" | 68 ++++ .../project03/MyTaskList/CJAppDelegate.h" | 25 ++ .../project03/MyTaskList/CJAppDelegate.m" | 129 +++++++ .../project03/MyTaskList/Info.plist" | 47 +++ .../project03/MyTaskList/ViewController.h" | 21 ++ .../project03/MyTaskList/ViewController.m" | 93 +++++ .../project03/MyTaskList/main.m" | 17 + 34 files changed, 1755 insertions(+), 5 deletions(-) create mode 100644 "21651133\351\231\210\345\206\233/project02/CJCal.xcodeproj/project.pbxproj" create mode 100644 "21651133\351\231\210\345\206\233/project02/CJCal/AppDelegate.h" create mode 100644 "21651133\351\231\210\345\206\233/project02/CJCal/AppDelegate.m" create mode 100644 "21651133\351\231\210\345\206\233/project02/CJCal/Assets.xcassets/AppIcon.appiconset/Contents.json" create mode 100644 "21651133\351\231\210\345\206\233/project02/CJCal/Base.lproj/LaunchScreen.storyboard" create mode 100644 "21651133\351\231\210\345\206\233/project02/CJCal/Base.lproj/Main.storyboard" create mode 100644 "21651133\351\231\210\345\206\233/project02/CJCal/CJView.h" create mode 100644 "21651133\351\231\210\345\206\233/project02/CJCal/CJView.m" create mode 100644 "21651133\351\231\210\345\206\233/project02/CJCal/Info.plist" create mode 100644 "21651133\351\231\210\345\206\233/project02/CJCal/ViewController.h" create mode 100644 "21651133\351\231\210\345\206\233/project02/CJCal/ViewController.m" create mode 100644 "21651133\351\231\210\345\206\233/project02/CJCal/main.m" create mode 120000 "21651133\351\231\210\345\206\233/project02/libmycal.framework/Headers" create mode 100644 "21651133\351\231\210\345\206\233/project02/libmycal.framework/Info.plist" create mode 100644 "21651133\351\231\210\345\206\233/project02/libmycal.framework/Modules/module.modulemap" create mode 100644 "21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/A/Headers/Calendar.h" create mode 100644 "21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/A/Headers/ErrroMsg.h" create mode 100644 "21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/A/Headers/libmycal.h" create mode 120000 "21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/Current" create mode 100755 "21651133\351\231\210\345\206\233/project02/libmycal.framework/libmycal" create mode 100644 "21651133\351\231\210\345\206\233/project03/MyTaskList.xcodeproj/project.pbxproj" create mode 100644 "21651133\351\231\210\345\206\233/project03/MyTaskList/AppDelegate.h" create mode 100644 "21651133\351\231\210\345\206\233/project03/MyTaskList/AppDelegate.m" create mode 100644 "21651133\351\231\210\345\206\233/project03/MyTaskList/Assets.xcassets/AppIcon.appiconset/Contents.json" create mode 100644 "21651133\351\231\210\345\206\233/project03/MyTaskList/Base.lproj/LaunchScreen.storyboard" create mode 100644 "21651133\351\231\210\345\206\233/project03/MyTaskList/Base.lproj/Main.storyboard" create mode 100644 "21651133\351\231\210\345\206\233/project03/MyTaskList/CJAppDelegate.h" create mode 100644 "21651133\351\231\210\345\206\233/project03/MyTaskList/CJAppDelegate.m" create mode 100644 "21651133\351\231\210\345\206\233/project03/MyTaskList/Info.plist" create mode 100644 "21651133\351\231\210\345\206\233/project03/MyTaskList/ViewController.h" create mode 100644 "21651133\351\231\210\345\206\233/project03/MyTaskList/ViewController.m" create mode 100644 "21651133\351\231\210\345\206\233/project03/MyTaskList/main.m" diff --git "a/21600000\346\235\216\345\220\257\351\233\267/project02/MyPaint/MyView.m" "b/21600000\346\235\216\345\220\257\351\233\267/project02/MyPaint/MyView.m" index a367f6f..f1cb30e 100644 --- "a/21600000\346\235\216\345\220\257\351\233\267/project02/MyPaint/MyView.m" +++ "b/21600000\346\235\216\345\220\257\351\233\267/project02/MyPaint/MyView.m" @@ -15,10 +15,16 @@ - (void) drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetRGBFillColor(context, 0.5, 0, 0.5, 0.4); - CGContextFillRect(context, CGRectMake(rect.origin.x+10, - rect.origin.y+10, - rect.size.width-20, - rect.size.width - 20)); +// CGContextFillRect(context, CGRectMake(rect.origin.x+10, +// rect.origin.y+10, +// rect.size.width-20, +// rect.size.width - 20)); + + + + + + } @end diff --git "a/21600000\346\235\216\345\220\257\351\233\267/project02/MyPaint/main.m" "b/21600000\346\235\216\345\220\257\351\233\267/project02/MyPaint/main.m" index ae84688..5256aa1 100644 --- "a/21600000\346\235\216\345\220\257\351\233\267/project02/MyPaint/main.m" +++ "b/21600000\346\235\216\345\220\257\351\233\267/project02/MyPaint/main.m" @@ -13,4 +13,4 @@ int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } -} +} \ No newline at end of file diff --git "a/21651133\351\231\210\345\206\233/project02/CJCal.xcodeproj/project.pbxproj" "b/21651133\351\231\210\345\206\233/project02/CJCal.xcodeproj/project.pbxproj" new file mode 100644 index 0000000..d4a4927 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/CJCal.xcodeproj/project.pbxproj" @@ -0,0 +1,345 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 6A3A71A31DC052F600D6CD92 /* libmycal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A3A71A21DC052F600D6CD92 /* libmycal.framework */; }; + 6A3A71A41DC052F600D6CD92 /* libmycal.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6A3A71A21DC052F600D6CD92 /* libmycal.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 6A3A71A71DC081E500D6CD92 /* CJView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A3A71A61DC081E500D6CD92 /* CJView.m */; }; + 6AD27A791DBF8EED00118A28 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AD27A781DBF8EED00118A28 /* main.m */; }; + 6AD27A7C1DBF8EED00118A28 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AD27A7B1DBF8EED00118A28 /* AppDelegate.m */; }; + 6AD27A7F1DBF8EED00118A28 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AD27A7E1DBF8EED00118A28 /* ViewController.m */; }; + 6AD27A821DBF8EED00118A28 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6AD27A801DBF8EED00118A28 /* Main.storyboard */; }; + 6AD27A841DBF8EED00118A28 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6AD27A831DBF8EED00118A28 /* Assets.xcassets */; }; + 6AD27A871DBF8EED00118A28 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6AD27A851DBF8EED00118A28 /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 6AD27A911DBF96BA00118A28 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 6A3A71A41DC052F600D6CD92 /* libmycal.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 6A3A71A21DC052F600D6CD92 /* libmycal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = libmycal.framework; sourceTree = ""; }; + 6A3A71A51DC0819700D6CD92 /* CJView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJView.h; sourceTree = ""; }; + 6A3A71A61DC081E500D6CD92 /* CJView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CJView.m; sourceTree = ""; }; + 6AD27A741DBF8EED00118A28 /* CJCal.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CJCal.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 6AD27A781DBF8EED00118A28 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 6AD27A7A1DBF8EED00118A28 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 6AD27A7B1DBF8EED00118A28 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 6AD27A7D1DBF8EED00118A28 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 6AD27A7E1DBF8EED00118A28 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + 6AD27A811DBF8EED00118A28 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 6AD27A831DBF8EED00118A28 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 6AD27A861DBF8EED00118A28 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 6AD27A881DBF8EED00118A28 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 6AD27A711DBF8EED00118A28 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6A3A71A31DC052F600D6CD92 /* libmycal.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 6AD27A6B1DBF8EED00118A28 = { + isa = PBXGroup; + children = ( + 6A3A71A21DC052F600D6CD92 /* libmycal.framework */, + 6AD27A761DBF8EED00118A28 /* CJCal */, + 6AD27A751DBF8EED00118A28 /* Products */, + ); + sourceTree = ""; + }; + 6AD27A751DBF8EED00118A28 /* Products */ = { + isa = PBXGroup; + children = ( + 6AD27A741DBF8EED00118A28 /* CJCal.app */, + ); + name = Products; + sourceTree = ""; + }; + 6AD27A761DBF8EED00118A28 /* CJCal */ = { + isa = PBXGroup; + children = ( + 6AD27A7A1DBF8EED00118A28 /* AppDelegate.h */, + 6AD27A7B1DBF8EED00118A28 /* AppDelegate.m */, + 6AD27A7D1DBF8EED00118A28 /* ViewController.h */, + 6AD27A7E1DBF8EED00118A28 /* ViewController.m */, + 6AD27A801DBF8EED00118A28 /* Main.storyboard */, + 6AD27A831DBF8EED00118A28 /* Assets.xcassets */, + 6AD27A851DBF8EED00118A28 /* LaunchScreen.storyboard */, + 6AD27A881DBF8EED00118A28 /* Info.plist */, + 6AD27A771DBF8EED00118A28 /* Supporting Files */, + 6A3A71A51DC0819700D6CD92 /* CJView.h */, + 6A3A71A61DC081E500D6CD92 /* CJView.m */, + ); + path = CJCal; + sourceTree = ""; + }; + 6AD27A771DBF8EED00118A28 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 6AD27A781DBF8EED00118A28 /* main.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 6AD27A731DBF8EED00118A28 /* CJCal */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6AD27A8B1DBF8EED00118A28 /* Build configuration list for PBXNativeTarget "CJCal" */; + buildPhases = ( + 6AD27A701DBF8EED00118A28 /* Sources */, + 6AD27A711DBF8EED00118A28 /* Frameworks */, + 6AD27A721DBF8EED00118A28 /* Resources */, + 6AD27A911DBF96BA00118A28 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CJCal; + productName = CJCal; + productReference = 6AD27A741DBF8EED00118A28 /* CJCal.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 6AD27A6C1DBF8EED00118A28 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0730; + ORGANIZATIONNAME = Chanjun2016; + TargetAttributes = { + 6AD27A731DBF8EED00118A28 = { + CreatedOnToolsVersion = 7.3; + DevelopmentTeam = UL9C9N8227; + }; + }; + }; + buildConfigurationList = 6AD27A6F1DBF8EED00118A28 /* Build configuration list for PBXProject "CJCal" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 6AD27A6B1DBF8EED00118A28; + productRefGroup = 6AD27A751DBF8EED00118A28 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 6AD27A731DBF8EED00118A28 /* CJCal */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 6AD27A721DBF8EED00118A28 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6AD27A871DBF8EED00118A28 /* LaunchScreen.storyboard in Resources */, + 6AD27A841DBF8EED00118A28 /* Assets.xcassets in Resources */, + 6AD27A821DBF8EED00118A28 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 6AD27A701DBF8EED00118A28 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6AD27A7F1DBF8EED00118A28 /* ViewController.m in Sources */, + 6AD27A7C1DBF8EED00118A28 /* AppDelegate.m in Sources */, + 6AD27A791DBF8EED00118A28 /* main.m in Sources */, + 6A3A71A71DC081E500D6CD92 /* CJView.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 6AD27A801DBF8EED00118A28 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 6AD27A811DBF8EED00118A28 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 6AD27A851DBF8EED00118A28 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 6AD27A861DBF8EED00118A28 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 6AD27A891DBF8EED00118A28 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 6AD27A8A1DBF8EED00118A28 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 6AD27A8C1DBF8EED00118A28 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + INFOPLIST_FILE = CJCal/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.chanjun2016.CJCal; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 6AD27A8D1DBF8EED00118A28 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + INFOPLIST_FILE = CJCal/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.chanjun2016.CJCal; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 6AD27A6F1DBF8EED00118A28 /* Build configuration list for PBXProject "CJCal" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6AD27A891DBF8EED00118A28 /* Debug */, + 6AD27A8A1DBF8EED00118A28 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6AD27A8B1DBF8EED00118A28 /* Build configuration list for PBXNativeTarget "CJCal" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6AD27A8C1DBF8EED00118A28 /* Debug */, + 6AD27A8D1DBF8EED00118A28 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 6AD27A6C1DBF8EED00118A28 /* Project object */; +} diff --git "a/21651133\351\231\210\345\206\233/project02/CJCal/AppDelegate.h" "b/21651133\351\231\210\345\206\233/project02/CJCal/AppDelegate.h" new file mode 100644 index 0000000..6a2b84e --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/CJCal/AppDelegate.h" @@ -0,0 +1,17 @@ +// +// AppDelegate.h +// CJCal +// +// Created by Chanjun2016 on 16/10/25. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + + +@end + diff --git "a/21651133\351\231\210\345\206\233/project02/CJCal/AppDelegate.m" "b/21651133\351\231\210\345\206\233/project02/CJCal/AppDelegate.m" new file mode 100644 index 0000000..32440ea --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/CJCal/AppDelegate.m" @@ -0,0 +1,56 @@ +// +// AppDelegate.m +// CJCal +// +// Created by Chanjun2016 on 16/10/25. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import "AppDelegate.h" +#import "CJView.h" + +@interface AppDelegate () + +@end + +@implementation AppDelegate + + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + +// self.window = [[UIWindow alloc] init]; +// _window.frame = [[UIScreen mainScreen] bounds]; +// _window.backgroundColor = [UIColor whiteColor]; +// [_window makeKeyAndVisible]; +// +// _window.rootViewController = [[UIViewController alloc] init]; +// NSInteger nMargin = 40; +// [_window.rootViewController.view addSubview: [[CJView alloc] initWithFrame:CGRectMake(nMargin, nMargin, _window.frame.size.width - nMargin, _window.frame.size.width)]]; + + // Override point for customization after application launch. + return YES; +} + +- (void)applicationWillResignActive:(UIApplication *)application { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. +} + +- (void)applicationDidEnterBackground:(UIApplication *)application { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. +} + +- (void)applicationWillEnterForeground:(UIApplication *)application { + // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. +} + +- (void)applicationDidBecomeActive:(UIApplication *)application { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. +} + +- (void)applicationWillTerminate:(UIApplication *)application { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. +} + +@end diff --git "a/21651133\351\231\210\345\206\233/project02/CJCal/Assets.xcassets/AppIcon.appiconset/Contents.json" "b/21651133\351\231\210\345\206\233/project02/CJCal/Assets.xcassets/AppIcon.appiconset/Contents.json" new file mode 100644 index 0000000..eeea76c --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/CJCal/Assets.xcassets/AppIcon.appiconset/Contents.json" @@ -0,0 +1,73 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git "a/21651133\351\231\210\345\206\233/project02/CJCal/Base.lproj/LaunchScreen.storyboard" "b/21651133\351\231\210\345\206\233/project02/CJCal/Base.lproj/LaunchScreen.storyboard" new file mode 100644 index 0000000..1fa91aa --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/CJCal/Base.lproj/LaunchScreen.storyboard" @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/21651133\351\231\210\345\206\233/project02/CJCal/Base.lproj/Main.storyboard" "b/21651133\351\231\210\345\206\233/project02/CJCal/Base.lproj/Main.storyboard" new file mode 100644 index 0000000..4f07d64 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/CJCal/Base.lproj/Main.storyboard" @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/21651133\351\231\210\345\206\233/project02/CJCal/CJView.h" "b/21651133\351\231\210\345\206\233/project02/CJCal/CJView.h" new file mode 100644 index 0000000..e116c63 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/CJCal/CJView.h" @@ -0,0 +1,13 @@ +// +// CJView.h +// CJCal +// +// Created by Chanjun2016 on 16/10/26. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import + +@interface CJView : UIView + +@end diff --git "a/21651133\351\231\210\345\206\233/project02/CJCal/CJView.m" "b/21651133\351\231\210\345\206\233/project02/CJCal/CJView.m" new file mode 100644 index 0000000..7197db7 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/CJCal/CJView.m" @@ -0,0 +1,37 @@ +// +// CJView.m +// CJCal +// +// Created by Chanjun2016 on 16/10/26. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import "CjView.h" +@import libmycal; + +#define ROWS 8 + +@implementation CJView + +- (void) drawRect:(CGRect)rect { + CGContextRef context = UIGraphicsGetCurrentContext(); + + CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0); + CGContextFillRect(context, rect); + + UIFont* font = [UIFont fontWithName:@"Courier" size:20]; + + [[Calendar getInstance] calWithGivenMon:10 Year:2016]; + + NSDictionary* attrs = @{ + NSFontAttributeName:font + }; + CGRect rowRect = CGRectMake(0, 0, rect.size.width, rect.size.height); + + [[Calendar getInstance].buffer drawInRect:rowRect withAttributes:attrs]; + + NSLog(@"%@",[Calendar getInstance].buffer); + +} + +@end \ No newline at end of file diff --git "a/21651133\351\231\210\345\206\233/project02/CJCal/Info.plist" "b/21651133\351\231\210\345\206\233/project02/CJCal/Info.plist" new file mode 100644 index 0000000..40c6215 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/CJCal/Info.plist" @@ -0,0 +1,47 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git "a/21651133\351\231\210\345\206\233/project02/CJCal/ViewController.h" "b/21651133\351\231\210\345\206\233/project02/CJCal/ViewController.h" new file mode 100644 index 0000000..ae328c6 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/CJCal/ViewController.h" @@ -0,0 +1,15 @@ +// +// ViewController.h +// CJCal +// +// Created by Chanjun2016 on 16/10/25. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import + +@interface ViewController : UIViewController + + +@end + diff --git "a/21651133\351\231\210\345\206\233/project02/CJCal/ViewController.m" "b/21651133\351\231\210\345\206\233/project02/CJCal/ViewController.m" new file mode 100644 index 0000000..6befb47 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/CJCal/ViewController.m" @@ -0,0 +1,50 @@ +// +// ViewController.m +// CJCal +// +// Created by Chanjun2016 on 16/10/25. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import "ViewController.h" +@import libmycal; + +@interface ViewController () +@property (weak, nonatomic) IBOutlet UITextView *viewCal; + +@end + +@implementation ViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + // Do any additional setup after loading the view, typically from a nib. +} + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} +- (IBAction)dateChanged:(UIDatePicker *)sender { + + UIDatePicker* dp = (UIDatePicker*)sender; + NSDate* date = [dp date]; + NSCalendar* cal = [NSCalendar currentCalendar]; + NSInteger year = [cal component:NSCalendarUnitYear fromDate:date]; + NSInteger month = [cal component:NSCalendarUnitMonth fromDate:date]; + //NSInteger day = [cal component:NSCalendarUnitDay fromDate:date]; + + [[Calendar getInstance] calWithGivenMon:month Year:year]; + + NSString * content = [NSString stringWithFormat:@"%@",[[Calendar getInstance] buffer]]; + + _viewCal.font = [UIFont fontWithName:@"courier" size:25]; + + [[[Calendar getInstance] buffer] setString:@""]; + + [_viewCal setText:content]; + +} + +@end diff --git "a/21651133\351\231\210\345\206\233/project02/CJCal/main.m" "b/21651133\351\231\210\345\206\233/project02/CJCal/main.m" new file mode 100644 index 0000000..29bbc7e --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/CJCal/main.m" @@ -0,0 +1,16 @@ +// +// main.m +// CJCal +// +// Created by Chanjun2016 on 16/10/25. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git "a/21651133\351\231\210\345\206\233/project02/libmycal.framework/Headers" "b/21651133\351\231\210\345\206\233/project02/libmycal.framework/Headers" new file mode 120000 index 0000000..a177d2a --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/libmycal.framework/Headers" @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git "a/21651133\351\231\210\345\206\233/project02/libmycal.framework/Info.plist" "b/21651133\351\231\210\345\206\233/project02/libmycal.framework/Info.plist" new file mode 100644 index 0000000000000000000000000000000000000000..3439bd48c07513aa109e5fc71f0076cc93fb0666 GIT binary patch literal 759 zcmZWl%Wl&^6rC9!El|iLp`|U9M+i_Jvg|}@#0n{OBZVq7t(~@@s@BArBvZy?-Nravk{6urw@ojw{&yccKh_9 zZW{V(TzQnd8X@C-3(sY}I^Cz-^&BdK4LW45uy8KJHmN^OD#e7=CiaL4x@IK5UES<( z5)545iPbG!%xE2AKPE$JMxLzBXH{e5`a!B_1U?hPzroP+Bux96S>k8$c-7`K^VPUx%||5I9h>6Z-{^>@21c>-qBCUF># zESx{|mGXAdQ>LfOXLAiU6eI|J=`wdnO1ic=>p784xT)5ws)Y;88@Ymx$yUVqNQMHNB!qnSa{MW_xSZ&=mF6l^E>A8b+pJEGbgCWV?<+JdaaFz7p$W zh4Xz!u{jY#MYB{xPP6cA+-Q%8*b7BP)s~cO#n(3$F~q1_*R^`hyeFdrCP57}z z3p@h{;0<^OK7g+f!4j;)2JFH;7{LSh6267+;Yauheu3ZMclZPTL=$KVVN^h6w20bh Z9dYEMCuoc!^c*CC;O`9Xq&ZFK#V;}{={NuY literal 0 HcmV?d00001 diff --git "a/21651133\351\231\210\345\206\233/project02/libmycal.framework/Modules/module.modulemap" "b/21651133\351\231\210\345\206\233/project02/libmycal.framework/Modules/module.modulemap" new file mode 100644 index 0000000..7b97a1e --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/libmycal.framework/Modules/module.modulemap" @@ -0,0 +1,6 @@ +framework module libmycal { + umbrella header "libmycal.h" + + export * + module * { export * } +} diff --git "a/21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/A/Headers/Calendar.h" "b/21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/A/Headers/Calendar.h" new file mode 100644 index 0000000..49eb0a6 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/A/Headers/Calendar.h" @@ -0,0 +1,58 @@ +// +// Calendar.h +// cal +// +// Created by Chanjun2016 on 16/10/6. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import + +#ifdef DEBUG +#define NSLog(FORMAT, ...) fprintf(stderr,"%s\n",[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]); +#else +#define NSLog(...) +#endif + +typedef enum{ + unKnown, + currentMon, + givenMonYear, + givenYear, +}SpecifiedFuncType; + +@interface Calendar : NSObject + +- (id) init; + ++ (Calendar*) getInstance; + +- (char *) handleInput :(int)argn :(const char* [])argv; + +- (void)calWithCurMon:(int)mon : (int)year :(int)weekFirst; +- (void)calWithGivenMon: (int)mon Year: (int)year; +- (void)calWithGivenYear:(int)year; + +- (void)printMonthHeadLine:(int)mon :(int)year; + +- (void)printYearOfRow:(int)row; + +- (int)printMonRow:(int)row : (int)days : (int)weekFirst; + +- (int)countDaysOfMonth:(int)year : (int)month; + ++ (int)convertIntValue:(const char*)str; + ++ (int)getWeekFirstOfMon:(int)year :(int)mon; + +- (void)display; + +@property int year; +@property int month; +@property int day; +@property int week; +@property NSMutableString* buffer; + +@end + +/* Calendar_h */ \ No newline at end of file diff --git "a/21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/A/Headers/ErrroMsg.h" "b/21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/A/Headers/ErrroMsg.h" new file mode 100644 index 0000000..bbfa8b9 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/A/Headers/ErrroMsg.h" @@ -0,0 +1,19 @@ +// +// ErrroMsg.h +// cal +// +// Created by Chanjun2016 on 16/10/6. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +@interface ErrroMsg : NSObject + ++ (const char *)getYEAR_OUT_RANGE; ++ (const char *)getMONTH_OUT_RANGE; ++ (const char *)getARG_LIMIT_EXCEED; ++ (const char *)getSUCCEED; ++ (const char *)getILLEGALOPTION; + +@end + +/* ErrroMsg_h */ diff --git "a/21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/A/Headers/libmycal.h" "b/21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/A/Headers/libmycal.h" new file mode 100644 index 0000000..c1af78f --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/A/Headers/libmycal.h" @@ -0,0 +1,22 @@ +// +// libmycal.h +// libmycal +// +// Created by Chanjun2016 on 16/10/26. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import + +//! Project version number for libmycal. +FOUNDATION_EXPORT double libmycalVersionNumber; + +//! Project version string for libmycal. +FOUNDATION_EXPORT const unsigned char libmycalVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + +#import + +#import + diff --git "a/21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/Current" "b/21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/Current" new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project02/libmycal.framework/Versions/Current" @@ -0,0 +1 @@ +A \ No newline at end of file diff --git "a/21651133\351\231\210\345\206\233/project02/libmycal.framework/libmycal" "b/21651133\351\231\210\345\206\233/project02/libmycal.framework/libmycal" new file mode 100755 index 0000000000000000000000000000000000000000..2d455ce722914ddace4aa1ab96efa9f5a733a282 GIT binary patch literal 24780 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 IIbYNM8yc{ZHUIzs literal 0 HcmV?d00001 diff --git "a/21651133\351\231\210\345\206\233/project03/MyTaskList.xcodeproj/project.pbxproj" "b/21651133\351\231\210\345\206\233/project03/MyTaskList.xcodeproj/project.pbxproj" new file mode 100644 index 0000000..56f8132 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project03/MyTaskList.xcodeproj/project.pbxproj" @@ -0,0 +1,316 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 6AA911C31DC0B8E6009DFF00 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AA911C21DC0B8E6009DFF00 /* main.m */; }; + 6AA911C61DC0B8E6009DFF00 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AA911C51DC0B8E6009DFF00 /* AppDelegate.m */; }; + 6AA911C91DC0B8E6009DFF00 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AA911C81DC0B8E6009DFF00 /* ViewController.m */; }; + 6AA911CC1DC0B8E6009DFF00 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6AA911CA1DC0B8E6009DFF00 /* Main.storyboard */; }; + 6AA911CE1DC0B8E6009DFF00 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6AA911CD1DC0B8E6009DFF00 /* Assets.xcassets */; }; + 6AA911D11DC0B8E6009DFF00 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6AA911CF1DC0B8E6009DFF00 /* LaunchScreen.storyboard */; }; + 6AA911DA1DC0BF4C009DFF00 /* CJAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AA911D91DC0BF4C009DFF00 /* CJAppDelegate.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 6AA911BE1DC0B8E6009DFF00 /* MyTaskList.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MyTaskList.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 6AA911C21DC0B8E6009DFF00 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 6AA911C41DC0B8E6009DFF00 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 6AA911C51DC0B8E6009DFF00 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 6AA911C71DC0B8E6009DFF00 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 6AA911C81DC0B8E6009DFF00 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + 6AA911CB1DC0B8E6009DFF00 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 6AA911CD1DC0B8E6009DFF00 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 6AA911D01DC0B8E6009DFF00 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 6AA911D21DC0B8E6009DFF00 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 6AA911D81DC0BF4C009DFF00 /* CJAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJAppDelegate.h; sourceTree = ""; }; + 6AA911D91DC0BF4C009DFF00 /* CJAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CJAppDelegate.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 6AA911BB1DC0B8E6009DFF00 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 6AA911B51DC0B8E6009DFF00 = { + isa = PBXGroup; + children = ( + 6AA911C01DC0B8E6009DFF00 /* MyTaskList */, + 6AA911BF1DC0B8E6009DFF00 /* Products */, + ); + sourceTree = ""; + }; + 6AA911BF1DC0B8E6009DFF00 /* Products */ = { + isa = PBXGroup; + children = ( + 6AA911BE1DC0B8E6009DFF00 /* MyTaskList.app */, + ); + name = Products; + sourceTree = ""; + }; + 6AA911C01DC0B8E6009DFF00 /* MyTaskList */ = { + isa = PBXGroup; + children = ( + 6AA911C41DC0B8E6009DFF00 /* AppDelegate.h */, + 6AA911C51DC0B8E6009DFF00 /* AppDelegate.m */, + 6AA911C71DC0B8E6009DFF00 /* ViewController.h */, + 6AA911C81DC0B8E6009DFF00 /* ViewController.m */, + 6AA911CA1DC0B8E6009DFF00 /* Main.storyboard */, + 6AA911CD1DC0B8E6009DFF00 /* Assets.xcassets */, + 6AA911CF1DC0B8E6009DFF00 /* LaunchScreen.storyboard */, + 6AA911D21DC0B8E6009DFF00 /* Info.plist */, + 6AA911C11DC0B8E6009DFF00 /* Supporting Files */, + 6AA911D81DC0BF4C009DFF00 /* CJAppDelegate.h */, + 6AA911D91DC0BF4C009DFF00 /* CJAppDelegate.m */, + ); + path = MyTaskList; + sourceTree = ""; + }; + 6AA911C11DC0B8E6009DFF00 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 6AA911C21DC0B8E6009DFF00 /* main.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 6AA911BD1DC0B8E6009DFF00 /* MyTaskList */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6AA911D51DC0B8E6009DFF00 /* Build configuration list for PBXNativeTarget "MyTaskList" */; + buildPhases = ( + 6AA911BA1DC0B8E6009DFF00 /* Sources */, + 6AA911BB1DC0B8E6009DFF00 /* Frameworks */, + 6AA911BC1DC0B8E6009DFF00 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = MyTaskList; + productName = MyTaskList; + productReference = 6AA911BE1DC0B8E6009DFF00 /* MyTaskList.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 6AA911B61DC0B8E6009DFF00 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0730; + ORGANIZATIONNAME = Chanjun2016; + TargetAttributes = { + 6AA911BD1DC0B8E6009DFF00 = { + CreatedOnToolsVersion = 7.3; + DevelopmentTeam = UL9C9N8227; + }; + }; + }; + buildConfigurationList = 6AA911B91DC0B8E6009DFF00 /* Build configuration list for PBXProject "MyTaskList" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 6AA911B51DC0B8E6009DFF00; + productRefGroup = 6AA911BF1DC0B8E6009DFF00 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 6AA911BD1DC0B8E6009DFF00 /* MyTaskList */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 6AA911BC1DC0B8E6009DFF00 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6AA911D11DC0B8E6009DFF00 /* LaunchScreen.storyboard in Resources */, + 6AA911CE1DC0B8E6009DFF00 /* Assets.xcassets in Resources */, + 6AA911CC1DC0B8E6009DFF00 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 6AA911BA1DC0B8E6009DFF00 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6AA911C91DC0B8E6009DFF00 /* ViewController.m in Sources */, + 6AA911C61DC0B8E6009DFF00 /* AppDelegate.m in Sources */, + 6AA911C31DC0B8E6009DFF00 /* main.m in Sources */, + 6AA911DA1DC0BF4C009DFF00 /* CJAppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 6AA911CA1DC0B8E6009DFF00 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 6AA911CB1DC0B8E6009DFF00 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 6AA911CF1DC0B8E6009DFF00 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 6AA911D01DC0B8E6009DFF00 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 6AA911D31DC0B8E6009DFF00 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 6AA911D41DC0B8E6009DFF00 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 6AA911D61DC0B8E6009DFF00 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = MyTaskList/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.chanjun2016.MyTaskList; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 6AA911D71DC0B8E6009DFF00 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = MyTaskList/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.chanjun2016.MyTaskList; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 6AA911B91DC0B8E6009DFF00 /* Build configuration list for PBXProject "MyTaskList" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6AA911D31DC0B8E6009DFF00 /* Debug */, + 6AA911D41DC0B8E6009DFF00 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6AA911D51DC0B8E6009DFF00 /* Build configuration list for PBXNativeTarget "MyTaskList" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6AA911D61DC0B8E6009DFF00 /* Debug */, + 6AA911D71DC0B8E6009DFF00 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 6AA911B61DC0B8E6009DFF00 /* Project object */; +} diff --git "a/21651133\351\231\210\345\206\233/project03/MyTaskList/AppDelegate.h" "b/21651133\351\231\210\345\206\233/project03/MyTaskList/AppDelegate.h" new file mode 100644 index 0000000..a4bfb10 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project03/MyTaskList/AppDelegate.h" @@ -0,0 +1,17 @@ +// +// AppDelegate.h +// MyTaskList +// +// Created by Chanjun2016 on 16/10/26. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + + +@end + diff --git "a/21651133\351\231\210\345\206\233/project03/MyTaskList/AppDelegate.m" "b/21651133\351\231\210\345\206\233/project03/MyTaskList/AppDelegate.m" new file mode 100644 index 0000000..645c61d --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project03/MyTaskList/AppDelegate.m" @@ -0,0 +1,47 @@ +// +// AppDelegate.m +// MyTaskList +// +// Created by Chanjun2016 on 16/10/26. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import "AppDelegate.h" + +@interface AppDelegate () + +@end + +@implementation AppDelegate + + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + // Override point for customization after application launch. + return YES; +} + +- (void)applicationWillResignActive:(UIApplication *)application { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. +} + +- (void)applicationDidEnterBackground:(UIApplication *)application { +// [s writeToFile:docPath() atomically:YES]; + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. + +} + +- (void)applicationWillEnterForeground:(UIApplication *)application { + // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. +} + +- (void)applicationDidBecomeActive:(UIApplication *)application { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. +} + +- (void)applicationWillTerminate:(UIApplication *)application { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. +} + +@end diff --git "a/21651133\351\231\210\345\206\233/project03/MyTaskList/Assets.xcassets/AppIcon.appiconset/Contents.json" "b/21651133\351\231\210\345\206\233/project03/MyTaskList/Assets.xcassets/AppIcon.appiconset/Contents.json" new file mode 100644 index 0000000..eeea76c --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project03/MyTaskList/Assets.xcassets/AppIcon.appiconset/Contents.json" @@ -0,0 +1,73 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git "a/21651133\351\231\210\345\206\233/project03/MyTaskList/Base.lproj/LaunchScreen.storyboard" "b/21651133\351\231\210\345\206\233/project03/MyTaskList/Base.lproj/LaunchScreen.storyboard" new file mode 100644 index 0000000..1fa91aa --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project03/MyTaskList/Base.lproj/LaunchScreen.storyboard" @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/21651133\351\231\210\345\206\233/project03/MyTaskList/Base.lproj/Main.storyboard" "b/21651133\351\231\210\345\206\233/project03/MyTaskList/Base.lproj/Main.storyboard" new file mode 100644 index 0000000..ef88cf3 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project03/MyTaskList/Base.lproj/Main.storyboard" @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/21651133\351\231\210\345\206\233/project03/MyTaskList/CJAppDelegate.h" "b/21651133\351\231\210\345\206\233/project03/MyTaskList/CJAppDelegate.h" new file mode 100644 index 0000000..59e2365 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project03/MyTaskList/CJAppDelegate.h" @@ -0,0 +1,25 @@ +// +// CJAppDelegate.h +// MyTaskList +// +// Created by Chanjun2016 on 16/10/26. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import + +NSString *docPath(void); + +@interface CJAppDelegate : UIResponder +{ + UITableView *taskTable; + UITextField *taskField; + UIButton *insertButton; + NSMutableArray *tasks; +} + +- (void)addTask: (id)sender; + +@property (strong, nonatomic) UIWindow *window; + +@end diff --git "a/21651133\351\231\210\345\206\233/project03/MyTaskList/CJAppDelegate.m" "b/21651133\351\231\210\345\206\233/project03/MyTaskList/CJAppDelegate.m" new file mode 100644 index 0000000..1995ba7 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project03/MyTaskList/CJAppDelegate.m" @@ -0,0 +1,129 @@ +// +// CJAppDelegate.m +// MyTaskList +// +// Created by Chanjun2016 on 16/10/26. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import "CJAppDelegate.h" +#import "ViewController.h" + +NSString *docPath() +{ + NSArray *pathList = NSSearchPathForDirectoriesInDomains( + NSDocumentDirectory, NSUserDomainMask, YES); + return [[pathList objectAtIndex:0] + stringByAppendingPathComponent:@"data.txt"]; +} + +@implementation CJAppDelegate + +- (BOOL)application:(UIApplication *)application +didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ + + NSArray *plist = [NSArray arrayWithContentsOfFile:docPath()]; + if (plist) { + tasks = [plist mutableCopy]; + } else { + tasks = [[NSMutableArray alloc] init]; + } + + CGRect windowFrame= [[UIScreen mainScreen] bounds]; + UIWindow *window = [[UIWindow alloc] initWithFrame:windowFrame]; + [self setWindow:window]; + + _window.rootViewController = [[ViewController alloc] init]; + + CGRect tableFrame = CGRectMake(0, 80, 320, 380); + CGRect fieldFrame = CGRectMake(20, 40, 200, 31); + CGRect buttonFrame = CGRectMake(228, 40, 72, 31); + + taskTable = [[UITableView alloc] initWithFrame:tableFrame + style:UITableViewStylePlain]; + [taskTable setSeparatorStyle: UITableViewCellSeparatorStyleNone]; + + taskField = [[UITextField alloc] initWithFrame:fieldFrame]; + [taskField setBorderStyle:UITextBorderStyleRoundedRect]; + [taskField setPlaceholder:@"Type a task, tap Insert"]; + + insertButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; + [insertButton setFrame:buttonFrame]; + [insertButton setTitle:@"Insert" forState:UIControlStateNormal]; + + [insertButton addTarget:self + action:@selector(addTask:) + forControlEvents:UIControlEventTouchUpInside]; + + [[self window].rootViewController.view addSubview:taskTable]; + [[self window].rootViewController.view addSubview:taskField]; + [[self window].rootViewController.view addSubview:insertButton]; + + [[self window] setBackgroundColor: [UIColor whiteColor]]; + [[self window] makeKeyAndVisible]; + + [taskField setEnabled:YES]; + + [taskTable setDataSource:self]; + + [taskTable setDelegate:self]; + +// [taskTable addGestureRecognizer:[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longTap:)]]; + + return YES; +} + +- (void)applicationDidEnterBackground: (UIApplication *) application +{ + [tasks writeToFile:docPath() atomically:YES]; +} + +- (void)addTask: (id)sender{ + NSString *text = [taskField text]; + if ([text isEqualToString:@""]) { + return; + } + [tasks addObject: text]; + [taskTable reloadData]; + [taskField setText:@""]; + [taskField resignFirstResponder]; +} + +- (NSInteger)tableView:(UITableView *)tableView + numberOfRowsInSection:(NSInteger)section +{ + return [tasks count]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView + cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + UITableViewCell *cell = [taskTable dequeueReusableCellWithIdentifier:@"Cell"]; + if (!cell ) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault + reuseIdentifier:@"Cell"]; + } + NSString *item = [tasks objectAtIndex: [indexPath row]]; + + [[cell textLabel] setText:item]; + [cell addGestureRecognizer:[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longTap:)]]; + + return cell ; +} + + +- (void)longTap:(UILongPressGestureRecognizer *)gestureRecognizer +{ + CGPoint tmpPointTouch = [gestureRecognizer locationInView:taskTable]; + if (gestureRecognizer.state ==UIGestureRecognizerStateBegan) { + NSIndexPath *indexPath = [taskTable indexPathForRowAtPoint:tmpPointTouch]; + if (indexPath == nil) { + NSLog(@"not tableView"); + }else{ + [tasks removeObjectAtIndex: [indexPath row]]; + [taskTable reloadData]; + } + } +} + +@end diff --git "a/21651133\351\231\210\345\206\233/project03/MyTaskList/Info.plist" "b/21651133\351\231\210\345\206\233/project03/MyTaskList/Info.plist" new file mode 100644 index 0000000..40c6215 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project03/MyTaskList/Info.plist" @@ -0,0 +1,47 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git "a/21651133\351\231\210\345\206\233/project03/MyTaskList/ViewController.h" "b/21651133\351\231\210\345\206\233/project03/MyTaskList/ViewController.h" new file mode 100644 index 0000000..16954e4 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project03/MyTaskList/ViewController.h" @@ -0,0 +1,21 @@ +// +// ViewController.h +// MyTaskList +// +// Created by Chanjun2016 on 16/10/26. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import + +//NSString *docPath(void); + +@interface ViewController : UIViewController + +-(void)longTap:(UILongPressGestureRecognizer *)longRecognizer; + +-(void)copyItemClicked:(id)sender; + +-(void)resendItemClicked:(id)sender; +@end + diff --git "a/21651133\351\231\210\345\206\233/project03/MyTaskList/ViewController.m" "b/21651133\351\231\210\345\206\233/project03/MyTaskList/ViewController.m" new file mode 100644 index 0000000..fce57b4 --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project03/MyTaskList/ViewController.m" @@ -0,0 +1,93 @@ +// +// ViewController.m +// MyTaskList +// +// Created by Chanjun2016 on 16/10/26. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import "ViewController.h" + +//NSString *docPath() +//{ +// NSArray *pathList = NSSearchPathForDirectoriesInDomains( +// NSDocumentDirectory, NSUserDomainMask, YES); +// return [[pathList objectAtIndex:0] +// stringByAppendingPathComponent:@"data.txt"]; +//} + +NSMutableArray *_tasks; +NSMutableString *s; + +@interface ViewController () +{ + +} + +@property (weak, nonatomic) IBOutlet UITextField *taskField; +@property (weak, nonatomic) IBOutlet UIButton *insertButton; +@property (weak, nonatomic) IBOutlet UITableView *taskTable; + +@end + +@implementation ViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view, typically from a nib. +} + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} +- (IBAction)addTask:(UIButton *)sender { + NSString *text = [_taskField text]; + if ([text isEqualToString:@""]) { + return; + } + [s setString:@"Heool"]; + + [_tasks addObject: text]; + [_taskTable reloadData]; + [_taskField setText:@""]; + [_taskField resignFirstResponder]; +} + +-(BOOL)canPerformAction:(SEL)action withSender:(id)sender{ + if(action ==@selector(copyItemClicked:)){ + return YES; + }else if (action==@selector(resendItemClicked:)){ + return YES; + } + return [super canPerformAction:action withSender:sender]; +} + +-(BOOL)canBecomeFirstResponder{ + return YES; +} + +-(void)resendItemClicked:(id)sender{ + NSLog(@"转发"); + //通知代理 +} +-(void)copyItemClicked:(id)sender{ + NSLog(@"复制"); + // 通知代理 +} + +-(void)longTap:(UILongPressGestureRecognizer *)longRecognizer +{ + if (longRecognizer.state==UIGestureRecognizerStateBegan) { + [self becomeFirstResponder]; + UIMenuController *menu=[UIMenuController sharedMenuController]; + UIMenuItem *copyItem = [[UIMenuItem alloc] initWithTitle:@"完成" action:@selector(copyItemClicked:)]; + UIMenuItem *resendItem = [[UIMenuItem alloc] initWithTitle:@"删除" action:@selector(resendItemClicked:)]; + [menu setMenuItems:[NSArray arrayWithObjects:copyItem,resendItem,nil]]; + [menu setTargetRect: self.view.bounds inView:self]; + [menu setMenuVisible:YES animated:YES]; + } +} + + +@end diff --git "a/21651133\351\231\210\345\206\233/project03/MyTaskList/main.m" "b/21651133\351\231\210\345\206\233/project03/MyTaskList/main.m" new file mode 100644 index 0000000..18254ed --- /dev/null +++ "b/21651133\351\231\210\345\206\233/project03/MyTaskList/main.m" @@ -0,0 +1,17 @@ +// +// main.m +// MyTaskList +// +// Created by Chanjun2016 on 16/10/26. +// Copyright © 2016年 Chanjun2016. All rights reserved. +// + +#import +#import "AppDelegate.h" +#import "CJAppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([CJAppDelegate class])); + } +} \ No newline at end of file From 97785be18b020d9fb08d2b96166482a5ba2332d6 Mon Sep 17 00:00:00 2001 From: MichoChan <15755396353@163.com> Date: Wed, 26 Oct 2016 22:47:46 +0800 Subject: [PATCH 2/2] modified the README --- "21651133\351\231\210\345\206\233/README.md" | 26 ++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git "a/21651133\351\231\210\345\206\233/README.md" "b/21651133\351\231\210\345\206\233/README.md" index 240c938..36fff44 100644 --- "a/21651133\351\231\210\345\206\233/README.md" +++ "b/21651133\351\231\210\345\206\233/README.md" @@ -1,3 +1,29 @@ +##第二次作业 移植cal到ios平台 + +####基本功能 + 可实现选择月份和年份,不过为了简单考虑,只是用datepicker来作为用户的选择的工具 + +####学习到的知识 +* NSString、NSMutableString的进一步认识 +* Framework的制作与使用 + + +##第三次作业 实现Todo List + +####基本功能 + +* 添加task +* 数据保存到本地,用plist +* 长按某个task,可以删除该task + +####学习到的知识 +* UITableView、UITableViewCell的知识 +* 对视图层次有更进一步的认识 +* 对如何在代码中实现界面有了一定的体会 +* 对ios中的事件机制有了进一步的了解 +* 对Category的认识 + + ##第一次作业 简单实现macOS下的cal ####三种基本的功能