From 0df0d93aaabe5d89dc0f83baea85ecd068cbe9af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=99=9E=E6=95=8F?= Date: Fri, 11 Mar 2016 14:54:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 字符串匹配度算法 --- .../project.pbxproj" | 521 ++++++++++++++++++ .../contents.xcworkspacedata" | 7 + .../UserInterfaceState.xcuserstate" | Bin 0 -> 12521 bytes .../xcschemes/xcschememanagement.plist" | 32 ++ ...\272\246\345\214\271\351\205\215.xcscheme" | 111 ++++ .../AppDelegate.h" | 17 + .../AppDelegate.m" | 45 ++ .../AppIcon.appiconset/Contents.json" | 68 +++ .../Base.lproj/LaunchScreen.storyboard" | 27 + .../Base.lproj/Main.storyboard" | 25 + .../Info.plist" | 47 ++ .../ViewController.h" | 14 + .../ViewController.m" | 60 ++ .../main.m" | 16 + .../Info.plist" | 24 + .../________Tests.m" | 39 ++ .../Info.plist" | 24 + .../________UITests.m" | 40 ++ 18 files changed, 1117 insertions(+) create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/project.pbxproj" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/project.xcworkspace/contents.xcworkspacedata" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/project.xcworkspace/xcuserdata/yumin.xcuserdatad/UserInterfaceState.xcuserstate" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/xcuserdata/yumin.xcuserdatad/xcschemes/xcschememanagement.plist" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/xcuserdata/yumin.xcuserdatad/xcschemes/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcscheme" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/AppDelegate.h" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/AppDelegate.m" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Assets.xcassets/AppIcon.appiconset/Contents.json" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Base.lproj/LaunchScreen.storyboard" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Base.lproj/Main.storyboard" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Info.plist" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/ViewController.h" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/ViewController.m" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/main.m" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215Tests/Info.plist" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215Tests/________Tests.m" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215UITests/Info.plist" create mode 100644 "\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215UITests/________UITests.m" diff --git "a/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/project.pbxproj" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/project.pbxproj" new file mode 100644 index 0000000..292bd88 --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/project.pbxproj" @@ -0,0 +1,521 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 7EB8CA461C929FAB00781DFA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EB8CA451C929FAB00781DFA /* main.m */; }; + 7EB8CA491C929FAB00781DFA /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EB8CA481C929FAB00781DFA /* AppDelegate.m */; }; + 7EB8CA4C1C929FAB00781DFA /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EB8CA4B1C929FAB00781DFA /* ViewController.m */; }; + 7EB8CA4F1C929FAB00781DFA /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7EB8CA4D1C929FAB00781DFA /* Main.storyboard */; }; + 7EB8CA511C929FAB00781DFA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7EB8CA501C929FAB00781DFA /* Assets.xcassets */; }; + 7EB8CA541C929FAB00781DFA /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7EB8CA521C929FAB00781DFA /* LaunchScreen.storyboard */; }; + 7EB8CA5F1C929FAB00781DFA /* ________Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EB8CA5E1C929FAB00781DFA /* ________Tests.m */; }; + 7EB8CA6A1C929FAB00781DFA /* ________UITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EB8CA691C929FAB00781DFA /* ________UITests.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 7EB8CA5B1C929FAB00781DFA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7EB8CA391C929FAB00781DFA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 7EB8CA401C929FAB00781DFA; + remoteInfo = "字符串相似度匹配"; + }; + 7EB8CA661C929FAB00781DFA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7EB8CA391C929FAB00781DFA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 7EB8CA401C929FAB00781DFA; + remoteInfo = "字符串相似度匹配"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 7EB8CA411C929FAB00781DFA /* 字符串相似度匹配.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "字符串相似度匹配.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7EB8CA451C929FAB00781DFA /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 7EB8CA471C929FAB00781DFA /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 7EB8CA481C929FAB00781DFA /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 7EB8CA4A1C929FAB00781DFA /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 7EB8CA4B1C929FAB00781DFA /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + 7EB8CA4E1C929FAB00781DFA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 7EB8CA501C929FAB00781DFA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 7EB8CA531C929FAB00781DFA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 7EB8CA551C929FAB00781DFA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 7EB8CA5A1C929FAB00781DFA /* 字符串相似度匹配Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "字符串相似度匹配Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7EB8CA5E1C929FAB00781DFA /* ________Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "________Tests.m"; sourceTree = ""; }; + 7EB8CA601C929FAB00781DFA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 7EB8CA651C929FAB00781DFA /* 字符串相似度匹配UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "字符串相似度匹配UITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7EB8CA691C929FAB00781DFA /* ________UITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "________UITests.m"; sourceTree = ""; }; + 7EB8CA6B1C929FAB00781DFA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 7EB8CA3E1C929FAB00781DFA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7EB8CA571C929FAB00781DFA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7EB8CA621C929FAB00781DFA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 7EB8CA381C929FAB00781DFA = { + isa = PBXGroup; + children = ( + 7EB8CA431C929FAB00781DFA /* 字符串相似度匹配 */, + 7EB8CA5D1C929FAB00781DFA /* 字符串相似度匹配Tests */, + 7EB8CA681C929FAB00781DFA /* 字符串相似度匹配UITests */, + 7EB8CA421C929FAB00781DFA /* Products */, + ); + sourceTree = ""; + }; + 7EB8CA421C929FAB00781DFA /* Products */ = { + isa = PBXGroup; + children = ( + 7EB8CA411C929FAB00781DFA /* 字符串相似度匹配.app */, + 7EB8CA5A1C929FAB00781DFA /* 字符串相似度匹配Tests.xctest */, + 7EB8CA651C929FAB00781DFA /* 字符串相似度匹配UITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 7EB8CA431C929FAB00781DFA /* 字符串相似度匹配 */ = { + isa = PBXGroup; + children = ( + 7EB8CA471C929FAB00781DFA /* AppDelegate.h */, + 7EB8CA481C929FAB00781DFA /* AppDelegate.m */, + 7EB8CA4A1C929FAB00781DFA /* ViewController.h */, + 7EB8CA4B1C929FAB00781DFA /* ViewController.m */, + 7EB8CA4D1C929FAB00781DFA /* Main.storyboard */, + 7EB8CA501C929FAB00781DFA /* Assets.xcassets */, + 7EB8CA521C929FAB00781DFA /* LaunchScreen.storyboard */, + 7EB8CA551C929FAB00781DFA /* Info.plist */, + 7EB8CA441C929FAB00781DFA /* Supporting Files */, + ); + path = "字符串相似度匹配"; + sourceTree = ""; + }; + 7EB8CA441C929FAB00781DFA /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 7EB8CA451C929FAB00781DFA /* main.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 7EB8CA5D1C929FAB00781DFA /* 字符串相似度匹配Tests */ = { + isa = PBXGroup; + children = ( + 7EB8CA5E1C929FAB00781DFA /* ________Tests.m */, + 7EB8CA601C929FAB00781DFA /* Info.plist */, + ); + path = "字符串相似度匹配Tests"; + sourceTree = ""; + }; + 7EB8CA681C929FAB00781DFA /* 字符串相似度匹配UITests */ = { + isa = PBXGroup; + children = ( + 7EB8CA691C929FAB00781DFA /* ________UITests.m */, + 7EB8CA6B1C929FAB00781DFA /* Info.plist */, + ); + path = "字符串相似度匹配UITests"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7EB8CA401C929FAB00781DFA /* 字符串相似度匹配 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7EB8CA6E1C929FAB00781DFA /* Build configuration list for PBXNativeTarget "字符串相似度匹配" */; + buildPhases = ( + 7EB8CA3D1C929FAB00781DFA /* Sources */, + 7EB8CA3E1C929FAB00781DFA /* Frameworks */, + 7EB8CA3F1C929FAB00781DFA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "字符串相似度匹配"; + productName = "字符串相似度匹配"; + productReference = 7EB8CA411C929FAB00781DFA /* 字符串相似度匹配.app */; + productType = "com.apple.product-type.application"; + }; + 7EB8CA591C929FAB00781DFA /* 字符串相似度匹配Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7EB8CA711C929FAB00781DFA /* Build configuration list for PBXNativeTarget "字符串相似度匹配Tests" */; + buildPhases = ( + 7EB8CA561C929FAB00781DFA /* Sources */, + 7EB8CA571C929FAB00781DFA /* Frameworks */, + 7EB8CA581C929FAB00781DFA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 7EB8CA5C1C929FAB00781DFA /* PBXTargetDependency */, + ); + name = "字符串相似度匹配Tests"; + productName = "字符串相似度匹配Tests"; + productReference = 7EB8CA5A1C929FAB00781DFA /* 字符串相似度匹配Tests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 7EB8CA641C929FAB00781DFA /* 字符串相似度匹配UITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7EB8CA741C929FAB00781DFA /* Build configuration list for PBXNativeTarget "字符串相似度匹配UITests" */; + buildPhases = ( + 7EB8CA611C929FAB00781DFA /* Sources */, + 7EB8CA621C929FAB00781DFA /* Frameworks */, + 7EB8CA631C929FAB00781DFA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 7EB8CA671C929FAB00781DFA /* PBXTargetDependency */, + ); + name = "字符串相似度匹配UITests"; + productName = "字符串相似度匹配UITests"; + productReference = 7EB8CA651C929FAB00781DFA /* 字符串相似度匹配UITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 7EB8CA391C929FAB00781DFA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0720; + ORGANIZATIONNAME = YM; + TargetAttributes = { + 7EB8CA401C929FAB00781DFA = { + CreatedOnToolsVersion = 7.2.1; + }; + 7EB8CA591C929FAB00781DFA = { + CreatedOnToolsVersion = 7.2.1; + TestTargetID = 7EB8CA401C929FAB00781DFA; + }; + 7EB8CA641C929FAB00781DFA = { + CreatedOnToolsVersion = 7.2.1; + TestTargetID = 7EB8CA401C929FAB00781DFA; + }; + }; + }; + buildConfigurationList = 7EB8CA3C1C929FAB00781DFA /* Build configuration list for PBXProject "字符串相似度匹配" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 7EB8CA381C929FAB00781DFA; + productRefGroup = 7EB8CA421C929FAB00781DFA /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 7EB8CA401C929FAB00781DFA /* 字符串相似度匹配 */, + 7EB8CA591C929FAB00781DFA /* 字符串相似度匹配Tests */, + 7EB8CA641C929FAB00781DFA /* 字符串相似度匹配UITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7EB8CA3F1C929FAB00781DFA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7EB8CA541C929FAB00781DFA /* LaunchScreen.storyboard in Resources */, + 7EB8CA511C929FAB00781DFA /* Assets.xcassets in Resources */, + 7EB8CA4F1C929FAB00781DFA /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7EB8CA581C929FAB00781DFA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7EB8CA631C929FAB00781DFA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7EB8CA3D1C929FAB00781DFA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7EB8CA4C1C929FAB00781DFA /* ViewController.m in Sources */, + 7EB8CA491C929FAB00781DFA /* AppDelegate.m in Sources */, + 7EB8CA461C929FAB00781DFA /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7EB8CA561C929FAB00781DFA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7EB8CA5F1C929FAB00781DFA /* ________Tests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7EB8CA611C929FAB00781DFA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7EB8CA6A1C929FAB00781DFA /* ________UITests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 7EB8CA5C1C929FAB00781DFA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 7EB8CA401C929FAB00781DFA /* 字符串相似度匹配 */; + targetProxy = 7EB8CA5B1C929FAB00781DFA /* PBXContainerItemProxy */; + }; + 7EB8CA671C929FAB00781DFA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 7EB8CA401C929FAB00781DFA /* 字符串相似度匹配 */; + targetProxy = 7EB8CA661C929FAB00781DFA /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 7EB8CA4D1C929FAB00781DFA /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 7EB8CA4E1C929FAB00781DFA /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 7EB8CA521C929FAB00781DFA /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 7EB8CA531C929FAB00781DFA /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 7EB8CA6C1C929FAB00781DFA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + 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.2; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 7EB8CA6D1C929FAB00781DFA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + 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.2; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 7EB8CA6F1C929FAB00781DFA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = "字符串相似度匹配/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "yuminwin.--------"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 7EB8CA701C929FAB00781DFA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = "字符串相似度匹配/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "yuminwin.--------"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + 7EB8CA721C929FAB00781DFA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + INFOPLIST_FILE = "字符串相似度匹配Tests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "yuminwin.--------Tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/字符串相似度匹配.app/字符串相似度匹配"; + }; + name = Debug; + }; + 7EB8CA731C929FAB00781DFA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + INFOPLIST_FILE = "字符串相似度匹配Tests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "yuminwin.--------Tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/字符串相似度匹配.app/字符串相似度匹配"; + }; + name = Release; + }; + 7EB8CA751C929FAB00781DFA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = "字符串相似度匹配UITests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "yuminwin.--------UITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_TARGET_NAME = "字符串相似度匹配"; + USES_XCTRUNNER = YES; + }; + name = Debug; + }; + 7EB8CA761C929FAB00781DFA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = "字符串相似度匹配UITests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "yuminwin.--------UITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_TARGET_NAME = "字符串相似度匹配"; + USES_XCTRUNNER = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7EB8CA3C1C929FAB00781DFA /* Build configuration list for PBXProject "字符串相似度匹配" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7EB8CA6C1C929FAB00781DFA /* Debug */, + 7EB8CA6D1C929FAB00781DFA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7EB8CA6E1C929FAB00781DFA /* Build configuration list for PBXNativeTarget "字符串相似度匹配" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7EB8CA6F1C929FAB00781DFA /* Debug */, + 7EB8CA701C929FAB00781DFA /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; + 7EB8CA711C929FAB00781DFA /* Build configuration list for PBXNativeTarget "字符串相似度匹配Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7EB8CA721C929FAB00781DFA /* Debug */, + 7EB8CA731C929FAB00781DFA /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; + 7EB8CA741C929FAB00781DFA /* Build configuration list for PBXNativeTarget "字符串相似度匹配UITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7EB8CA751C929FAB00781DFA /* Debug */, + 7EB8CA761C929FAB00781DFA /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 7EB8CA391C929FAB00781DFA /* Project object */; +} diff --git "a/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/project.xcworkspace/contents.xcworkspacedata" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/project.xcworkspace/contents.xcworkspacedata" new file mode 100644 index 0000000..76177fa --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/project.xcworkspace/contents.xcworkspacedata" @@ -0,0 +1,7 @@ + + + + + diff --git "a/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/project.xcworkspace/xcuserdata/yumin.xcuserdatad/UserInterfaceState.xcuserstate" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/project.xcworkspace/xcuserdata/yumin.xcuserdatad/UserInterfaceState.xcuserstate" new file mode 100644 index 0000000000000000000000000000000000000000..7c28042123c39e95f7719bc3cfb848b2f3dae06b GIT binary patch literal 12521 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 + + + + SchemeUserState + + 字符串相似度匹配.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 7EB8CA401C929FAB00781DFA + + primary + + + 7EB8CA591C929FAB00781DFA + + primary + + + 7EB8CA641C929FAB00781DFA + + primary + + + + + diff --git "a/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/xcuserdata/yumin.xcuserdatad/xcschemes/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcscheme" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/xcuserdata/yumin.xcuserdatad/xcschemes/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcscheme" new file mode 100644 index 0000000..0f1f08d --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcodeproj/xcuserdata/yumin.xcuserdatad/xcschemes/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215.xcscheme" @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/AppDelegate.h" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/AppDelegate.h" new file mode 100644 index 0000000..5de97d6 --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/AppDelegate.h" @@ -0,0 +1,17 @@ +// +// AppDelegate.h +// 字符串相似度匹配 +// +// Created by 虞敏 on 16/3/11. +// Copyright © 2016年 YM. All rights reserved. +// + +#import + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + + +@end + diff --git "a/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/AppDelegate.m" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/AppDelegate.m" new file mode 100644 index 0000000..0d0de97 --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/AppDelegate.m" @@ -0,0 +1,45 @@ +// +// AppDelegate.m +// 字符串相似度匹配 +// +// Created by 虞敏 on 16/3/11. +// Copyright © 2016年 YM. 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 { + // 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/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Assets.xcassets/AppIcon.appiconset/Contents.json" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Assets.xcassets/AppIcon.appiconset/Contents.json" new file mode 100644 index 0000000..36d2c80 --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Assets.xcassets/AppIcon.appiconset/Contents.json" @@ -0,0 +1,68 @@ +{ + "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" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git "a/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Base.lproj/LaunchScreen.storyboard" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Base.lproj/LaunchScreen.storyboard" new file mode 100644 index 0000000..2e721e1 --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Base.lproj/LaunchScreen.storyboard" @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Base.lproj/Main.storyboard" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Base.lproj/Main.storyboard" new file mode 100644 index 0000000..f56d2f3 --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Base.lproj/Main.storyboard" @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Info.plist" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/Info.plist" new file mode 100644 index 0000000..40c6215 --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/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/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/ViewController.h" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/ViewController.h" new file mode 100644 index 0000000..3a57e41 --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/ViewController.h" @@ -0,0 +1,14 @@ +// +// ViewController.h +// 字符串相似度匹配 +// +// Created by 虞敏 on 16/3/11. +// Copyright © 2016年 YM. All rights reserved. +// + +#import + +@interface ViewController : UIViewController +- (float)likePercent:(NSString *)testString AndTargetString:(NSString *)target; +@end + diff --git "a/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/ViewController.m" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/ViewController.m" new file mode 100644 index 0000000..2a61bce --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/ViewController.m" @@ -0,0 +1,60 @@ +// +// ViewController.m +// 字符串相似度匹配 +// +// Created by 虞敏 on 16/3/11. +// Copyright © 2016年 YM. All rights reserved. +// + +#import "ViewController.h" + +@interface ViewController () + +@end + +@implementation ViewController +- (float) likePercent:(NSString *)testString AndTargetString:(NSString *)target{ + int n = testString.length; + int m = target.length; + if (m==0) return n; + if (n==0) return m; + //Construct a matrix, need C99 support + int matrix[n+1][m+1]; + memset(&matrix[0], 0, m+1); + for(int i=1; i<=n; i++) { + memset(&matrix[i], 0, m+1); + matrix[i][0]=i; + } + for(int i=1; i<=m; i++) { + matrix[0][i]=i; + } + for(int i=1;i<=n;i++) + { + unichar si = [testString characterAtIndex:i-1]; + for(int j=1;j<=m;j++) + { + unichar dj = [target characterAtIndex:j-1]; + int cost; + if(si==dj){ + cost=0; + } + else{ + cost=1; + } + const int above=matrix[i-1][j]+1; + const int left=matrix[i][j-1]+1; + const int diag=matrix[i-1][j-1]+cost; + matrix[i][j]=MIN(above, MIN(left, diag)); + } + } + return 100.0 - 100.0*matrix[n][m]/testString.length; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + float percent=[self likePercent:@"helloworld" AndTargetString:@"helloWorld"]; + NSLog(@"percent=%f",percent); +} + + +@end diff --git "a/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/main.m" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/main.m" new file mode 100644 index 0000000..1fc9801 --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215/main.m" @@ -0,0 +1,16 @@ +// +// main.m +// 字符串相似度匹配 +// +// Created by 虞敏 on 16/3/11. +// Copyright © 2016年 YM. 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/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215Tests/Info.plist" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215Tests/Info.plist" new file mode 100644 index 0000000..ba72822 --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215Tests/Info.plist" @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git "a/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215Tests/________Tests.m" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215Tests/________Tests.m" new file mode 100644 index 0000000..b53c4e7 --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215Tests/________Tests.m" @@ -0,0 +1,39 @@ +// +// ________Tests.m +// 字符串相似度匹配Tests +// +// Created by 虞敏 on 16/3/11. +// Copyright © 2016年 YM. All rights reserved. +// + +#import + +@interface ________Tests : XCTestCase + +@end + +@implementation ________Tests + +- (void)setUp { + [super setUp]; + // Put setup code here. This method is called before the invocation of each test method in the class. +} + +- (void)tearDown { + // Put teardown code here. This method is called after the invocation of each test method in the class. + [super tearDown]; +} + +- (void)testExample { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. +} + +- (void)testPerformanceExample { + // This is an example of a performance test case. + [self measureBlock:^{ + // Put the code you want to measure the time of here. + }]; +} + +@end diff --git "a/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215UITests/Info.plist" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215UITests/Info.plist" new file mode 100644 index 0000000..ba72822 --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215UITests/Info.plist" @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git "a/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215UITests/________UITests.m" "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215UITests/________UITests.m" new file mode 100644 index 0000000..fb4ed62 --- /dev/null +++ "b/\345\255\227\347\254\246\344\270\262\347\233\270\344\274\274\345\272\246\345\214\271\351\205\215UITests/________UITests.m" @@ -0,0 +1,40 @@ +// +// ________UITests.m +// 字符串相似度匹配UITests +// +// Created by 虞敏 on 16/3/11. +// Copyright © 2016年 YM. All rights reserved. +// + +#import + +@interface ________UITests : XCTestCase + +@end + +@implementation ________UITests + +- (void)setUp { + [super setUp]; + + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + self.continueAfterFailure = NO; + // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. + [[[XCUIApplication alloc] init] launch]; + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. +} + +- (void)tearDown { + // Put teardown code here. This method is called after the invocation of each test method in the class. + [super tearDown]; +} + +- (void)testExample { + // Use recording to get started writing UI tests. + // Use XCTAssert and related functions to verify your tests produce the correct results. +} + +@end