From 0b3e64bdf4f1506de3a46b0a6582ed6ea6f5a4af Mon Sep 17 00:00:00 2001 From: SimonL Date: Thu, 11 Jul 2019 14:22:17 +0200 Subject: [PATCH] adding first extension --- .../Pods-TymateSwiftExtensions.xcscheme | 29 ++++++++++++------ .../xcschemes/xcschememanagement.plist | 4 +++ .../project.pbxproj | 9 +++++- .../xcschemes/xcschememanagement.plist | 2 +- .../xcshareddata/IDEWorkspaceChecks.plist | 8 +++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 16746 bytes TymateSwiftExtensions/StringExtensions.swift | 19 ++++++++++++ 7 files changed, 60 insertions(+), 11 deletions(-) create mode 100644 TymateSwiftExtensions.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 TymateSwiftExtensions.xcworkspace/xcuserdata/simon.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 TymateSwiftExtensions/StringExtensions.swift diff --git a/Pods/Pods.xcodeproj/xcuserdata/simon.xcuserdatad/xcschemes/Pods-TymateSwiftExtensions.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/simon.xcuserdatad/xcschemes/Pods-TymateSwiftExtensions.xcscheme index 89f1c7e..8b210a8 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/simon.xcuserdatad/xcschemes/Pods-TymateSwiftExtensions.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/simon.xcuserdatad/xcschemes/Pods-TymateSwiftExtensions.xcscheme @@ -7,15 +7,15 @@ buildImplicitDependencies = "YES"> + buildForArchiving = "YES" + buildForAnalyzing = "YES"> @@ -23,14 +23,17 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> + + + + + + + debugDocumentVersioning = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/simon.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/simon.xcuserdatad/xcschemes/xcschememanagement.plist index 92e04ca..5f32022 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/simon.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Pods/Pods.xcodeproj/xcuserdata/simon.xcuserdatad/xcschemes/xcschememanagement.plist @@ -8,11 +8,15 @@ isShown + orderHint + 0 Pods-TymateSwiftExtensions.xcscheme isShown + orderHint + 1 SuppressBuildableAutocreation diff --git a/TymateSwiftExtensions.xcodeproj/project.pbxproj b/TymateSwiftExtensions.xcodeproj/project.pbxproj index b5d6a00..f226037 100644 --- a/TymateSwiftExtensions.xcodeproj/project.pbxproj +++ b/TymateSwiftExtensions.xcodeproj/project.pbxproj @@ -9,6 +9,7 @@ /* Begin PBXBuildFile section */ 5B6AA39F467E0BF2D262468F /* Pods_TymateSwiftExtensions.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6685F60706721708C67C8CF6 /* Pods_TymateSwiftExtensions.framework */; }; F464DAE522D39F2C002413BD /* TymateSwiftExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = F464DAE322D39F2C002413BD /* TymateSwiftExtensions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F464DB1322D730A5002413BD /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F464DB1222D730A5002413BD /* StringExtensions.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -18,6 +19,7 @@ F464DAE022D39F2C002413BD /* TymateSwiftExtensions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TymateSwiftExtensions.framework; sourceTree = BUILT_PRODUCTS_DIR; }; F464DAE322D39F2C002413BD /* TymateSwiftExtensions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TymateSwiftExtensions.h; sourceTree = ""; }; F464DAE422D39F2C002413BD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + F464DB1222D730A5002413BD /* StringExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -38,7 +40,6 @@ 00955484756FD6B2C4E60979 /* Pods-TymateSwiftExtensions.debug.xcconfig */, 78A9AA7B809D409F49089628 /* Pods-TymateSwiftExtensions.release.xcconfig */, ); - name = Pods; path = Pods; sourceTree = ""; }; @@ -73,6 +74,7 @@ children = ( F464DAE322D39F2C002413BD /* TymateSwiftExtensions.h */, F464DAE422D39F2C002413BD /* Info.plist */, + F464DB1222D730A5002413BD /* StringExtensions.swift */, ); path = TymateSwiftExtensions; sourceTree = ""; @@ -121,6 +123,7 @@ TargetAttributes = { F464DADF22D39F2C002413BD = { CreatedOnToolsVersion = 10.2; + LastSwiftMigration = 1020; }; }; }; @@ -181,6 +184,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + F464DB1322D730A5002413BD /* StringExtensions.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -313,6 +317,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 00955484756FD6B2C4E60979 /* Pods-TymateSwiftExtensions.debug.xcconfig */; buildSettings = { + CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; DEFINES_MODULE = YES; @@ -329,6 +334,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.tymate.TymateSwiftExtensions; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -338,6 +344,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 78A9AA7B809D409F49089628 /* Pods-TymateSwiftExtensions.release.xcconfig */; buildSettings = { + CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; DEFINES_MODULE = YES; diff --git a/TymateSwiftExtensions.xcodeproj/xcuserdata/simon.xcuserdatad/xcschemes/xcschememanagement.plist b/TymateSwiftExtensions.xcodeproj/xcuserdata/simon.xcuserdatad/xcschemes/xcschememanagement.plist index 06653f2..3be4640 100644 --- a/TymateSwiftExtensions.xcodeproj/xcuserdata/simon.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/TymateSwiftExtensions.xcodeproj/xcuserdata/simon.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ TymateSwiftExtensions.xcscheme_^#shared#^_ orderHint - 0 + 2 diff --git a/TymateSwiftExtensions.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/TymateSwiftExtensions.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/TymateSwiftExtensions.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/TymateSwiftExtensions.xcworkspace/xcuserdata/simon.xcuserdatad/UserInterfaceState.xcuserstate b/TymateSwiftExtensions.xcworkspace/xcuserdata/simon.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..fa312615843eada5509cc95e9cfb9969fec2fe63 GIT binary patch literal 16746 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 Bool { + // print("validate calendar: \(testStr)") + let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}" + + let emailTest = NSPredicate(format: "SELF MATCHES %@", emailRegEx) + return emailTest.evaluate(with: self) + } +}