From 38b3a2243036ac01053ed1894e625755c20196a0 Mon Sep 17 00:00:00 2001 From: BB9z Date: Mon, 12 Dec 2022 21:38:42 +0800 Subject: [PATCH] Update CI and documents. --- .github/workflows/spm.yml | 14 +- .../B9MulticastDelegateTests_Info.plist | 25 - .../B9MulticastDelegate_Info.plist | 25 - B9MulticastDelegate.xcodeproj/project.pbxproj | 511 ------------------ .../contents.xcworkspacedata | 7 - .../xcshareddata/WorkspaceSettings.xcsettings | 10 - .../xcschemes/B9MulticastDelegate.xcscheme | 69 --- README.md | 16 +- 8 files changed, 20 insertions(+), 657 deletions(-) delete mode 100644 B9MulticastDelegate.xcodeproj/B9MulticastDelegateTests_Info.plist delete mode 100644 B9MulticastDelegate.xcodeproj/B9MulticastDelegate_Info.plist delete mode 100644 B9MulticastDelegate.xcodeproj/project.pbxproj delete mode 100644 B9MulticastDelegate.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 B9MulticastDelegate.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings delete mode 100644 B9MulticastDelegate.xcodeproj/xcshareddata/xcschemes/B9MulticastDelegate.xcscheme diff --git a/.github/workflows/spm.yml b/.github/workflows/spm.yml index 635f522..4ca2b75 100644 --- a/.github/workflows/spm.yml +++ b/.github/workflows/spm.yml @@ -6,8 +6,16 @@ jobs: build: runs-on: macos-latest steps: - - uses: actions/checkout@v2 - - name: Build + - uses: actions/checkout@v3 + - name: SPM Build run: swift build - - name: Test + - name: SPM Test run: swift test + - name: macOS Build + run: xcodebuild build -scheme B9MulticastDelegate -destination 'generic/platform=macOS' | xcpretty + - name: iOS Build + run: xcodebuild build -scheme B9MulticastDelegate -destination 'generic/platform=iOS' | xcpretty + - name: tvOS Build + run: xcodebuild build -scheme B9MulticastDelegate -destination 'generic/platform=tvOS' | xcpretty + - name: watchOS Build + run: xcodebuild build -scheme B9MulticastDelegate -destination 'generic/platform=watchOS' | xcpretty diff --git a/B9MulticastDelegate.xcodeproj/B9MulticastDelegateTests_Info.plist b/B9MulticastDelegate.xcodeproj/B9MulticastDelegateTests_Info.plist deleted file mode 100644 index 7c23420..0000000 --- a/B9MulticastDelegate.xcodeproj/B9MulticastDelegateTests_Info.plist +++ /dev/null @@ -1,25 +0,0 @@ - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/B9MulticastDelegate.xcodeproj/B9MulticastDelegate_Info.plist b/B9MulticastDelegate.xcodeproj/B9MulticastDelegate_Info.plist deleted file mode 100644 index 57ada9f..0000000 --- a/B9MulticastDelegate.xcodeproj/B9MulticastDelegate_Info.plist +++ /dev/null @@ -1,25 +0,0 @@ - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/B9MulticastDelegate.xcodeproj/project.pbxproj b/B9MulticastDelegate.xcodeproj/project.pbxproj deleted file mode 100644 index 795205e..0000000 --- a/B9MulticastDelegate.xcodeproj/project.pbxproj +++ /dev/null @@ -1,511 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 51; - objects = { - -/* Begin PBXAggregateTarget section */ - "B9MulticastDelegate::B9MulticastDelegatePackageTests::ProductTarget" /* B9MulticastDelegatePackageTests */ = { - isa = PBXAggregateTarget; - buildConfigurationList = OBJ_33 /* Build configuration list for PBXAggregateTarget "B9MulticastDelegatePackageTests" */; - buildPhases = ( - ); - dependencies = ( - OBJ_36 /* PBXTargetDependency */, - ); - name = B9MulticastDelegatePackageTests; - productName = B9MulticastDelegatePackageTests; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - OBJ_24 /* B9MulticastDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_9 /* B9MulticastDelegate.swift */; }; - OBJ_31 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_6 /* Package.swift */; }; - OBJ_42 /* B9MulticastDelegateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_12 /* B9MulticastDelegateTests.swift */; }; - OBJ_43 /* XCTestManifests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_13 /* XCTestManifests.swift */; }; - OBJ_45 /* B9MulticastDelegate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "B9MulticastDelegate::B9MulticastDelegate::Product" /* B9MulticastDelegate.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - D5C8BA2522E438CE00A223BC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = OBJ_1 /* Project object */; - proxyType = 1; - remoteGlobalIDString = "B9MulticastDelegate::B9MulticastDelegate"; - remoteInfo = B9MulticastDelegate; - }; - D5C8BA2622E438CF00A223BC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = OBJ_1 /* Project object */; - proxyType = 1; - remoteGlobalIDString = "B9MulticastDelegate::B9MulticastDelegateTests"; - remoteInfo = B9MulticastDelegateTests; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - "B9MulticastDelegate::B9MulticastDelegate::Product" /* B9MulticastDelegate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = B9MulticastDelegate.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - "B9MulticastDelegate::B9MulticastDelegateTests::Product" /* B9MulticastDelegateTests.xctest */ = {isa = PBXFileReference; lastKnownFileType = file; path = B9MulticastDelegateTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - OBJ_12 /* B9MulticastDelegateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = B9MulticastDelegateTests.swift; sourceTree = ""; }; - OBJ_13 /* XCTestManifests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCTestManifests.swift; sourceTree = ""; }; - OBJ_17 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; - OBJ_18 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - OBJ_6 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; }; - OBJ_9 /* B9MulticastDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = B9MulticastDelegate.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - OBJ_25 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - OBJ_44 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 0; - files = ( - OBJ_45 /* B9MulticastDelegate.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - OBJ_10 /* Tests */ = { - isa = PBXGroup; - children = ( - OBJ_11 /* B9MulticastDelegateTests */, - ); - name = Tests; - sourceTree = SOURCE_ROOT; - }; - OBJ_11 /* B9MulticastDelegateTests */ = { - isa = PBXGroup; - children = ( - OBJ_12 /* B9MulticastDelegateTests.swift */, - OBJ_13 /* XCTestManifests.swift */, - ); - name = B9MulticastDelegateTests; - path = Tests/B9MulticastDelegateTests; - sourceTree = SOURCE_ROOT; - }; - OBJ_14 /* Products */ = { - isa = PBXGroup; - children = ( - "B9MulticastDelegate::B9MulticastDelegateTests::Product" /* B9MulticastDelegateTests.xctest */, - "B9MulticastDelegate::B9MulticastDelegate::Product" /* B9MulticastDelegate.framework */, - ); - name = Products; - sourceTree = BUILT_PRODUCTS_DIR; - }; - OBJ_5 /* */ = { - isa = PBXGroup; - children = ( - OBJ_6 /* Package.swift */, - OBJ_7 /* Sources */, - OBJ_10 /* Tests */, - OBJ_14 /* Products */, - OBJ_17 /* LICENSE */, - OBJ_18 /* README.md */, - ); - name = ""; - sourceTree = ""; - }; - OBJ_7 /* Sources */ = { - isa = PBXGroup; - children = ( - OBJ_8 /* B9MulticastDelegate */, - ); - name = Sources; - sourceTree = SOURCE_ROOT; - }; - OBJ_8 /* B9MulticastDelegate */ = { - isa = PBXGroup; - children = ( - OBJ_9 /* B9MulticastDelegate.swift */, - ); - name = B9MulticastDelegate; - path = Sources/B9MulticastDelegate; - sourceTree = SOURCE_ROOT; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - "B9MulticastDelegate::B9MulticastDelegate" /* B9MulticastDelegate */ = { - isa = PBXNativeTarget; - buildConfigurationList = OBJ_20 /* Build configuration list for PBXNativeTarget "B9MulticastDelegate" */; - buildPhases = ( - OBJ_23 /* Sources */, - OBJ_25 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = B9MulticastDelegate; - productName = B9MulticastDelegate; - productReference = "B9MulticastDelegate::B9MulticastDelegate::Product" /* B9MulticastDelegate.framework */; - productType = "com.apple.product-type.framework"; - }; - "B9MulticastDelegate::B9MulticastDelegateTests" /* B9MulticastDelegateTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = OBJ_38 /* Build configuration list for PBXNativeTarget "B9MulticastDelegateTests" */; - buildPhases = ( - OBJ_41 /* Sources */, - OBJ_44 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - OBJ_46 /* PBXTargetDependency */, - ); - name = B9MulticastDelegateTests; - productName = B9MulticastDelegateTests; - productReference = "B9MulticastDelegate::B9MulticastDelegateTests::Product" /* B9MulticastDelegateTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - "B9MulticastDelegate::SwiftPMPackageDescription" /* B9MulticastDelegatePackageDescription */ = { - isa = PBXNativeTarget; - buildConfigurationList = OBJ_27 /* Build configuration list for PBXNativeTarget "B9MulticastDelegatePackageDescription" */; - buildPhases = ( - OBJ_30 /* Sources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = B9MulticastDelegatePackageDescription; - productName = B9MulticastDelegatePackageDescription; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - OBJ_1 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftMigration = 9999; - LastUpgradeCheck = 9999; - ORGANIZATIONNAME = B9Swift; - }; - buildConfigurationList = OBJ_2 /* Build configuration list for PBXProject "B9MulticastDelegate" */; - compatibilityVersion = "Xcode 10.0"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - ); - mainGroup = OBJ_5 /* */; - productRefGroup = OBJ_14 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - "B9MulticastDelegate::B9MulticastDelegate" /* B9MulticastDelegate */, - "B9MulticastDelegate::SwiftPMPackageDescription" /* B9MulticastDelegatePackageDescription */, - "B9MulticastDelegate::B9MulticastDelegatePackageTests::ProductTarget" /* B9MulticastDelegatePackageTests */, - "B9MulticastDelegate::B9MulticastDelegateTests" /* B9MulticastDelegateTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - OBJ_23 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 0; - files = ( - OBJ_24 /* B9MulticastDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - OBJ_30 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 0; - files = ( - OBJ_31 /* Package.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - OBJ_41 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 0; - files = ( - OBJ_42 /* B9MulticastDelegateTests.swift in Sources */, - OBJ_43 /* XCTestManifests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - OBJ_36 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = "B9MulticastDelegate::B9MulticastDelegateTests" /* B9MulticastDelegateTests */; - targetProxy = D5C8BA2622E438CF00A223BC /* PBXContainerItemProxy */; - }; - OBJ_46 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = "B9MulticastDelegate::B9MulticastDelegate" /* B9MulticastDelegate */; - targetProxy = D5C8BA2522E438CE00A223BC /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - OBJ_21 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ENABLE_TESTABILITY = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - ); - HEADER_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = B9MulticastDelegate.xcodeproj/B9MulticastDelegate_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", - ); - MACOSX_DEPLOYMENT_TARGET = 10.10; - OTHER_CFLAGS = "$(inherited)"; - OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited)"; - PRODUCT_BUNDLE_IDENTIFIER = B9MulticastDelegate; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - SWIFT_VERSION = 5.0; - TARGET_NAME = B9MulticastDelegate; - TVOS_DEPLOYMENT_TARGET = 9.0; - WATCHOS_DEPLOYMENT_TARGET = 2.0; - }; - name = Debug; - }; - OBJ_22 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ENABLE_TESTABILITY = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - ); - HEADER_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = B9MulticastDelegate.xcodeproj/B9MulticastDelegate_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", - ); - MACOSX_DEPLOYMENT_TARGET = 10.10; - OTHER_CFLAGS = "$(inherited)"; - OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited)"; - PRODUCT_BUNDLE_IDENTIFIER = B9MulticastDelegate; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - SWIFT_VERSION = 5.0; - TARGET_NAME = B9MulticastDelegate; - TVOS_DEPLOYMENT_TARGET = 9.0; - WATCHOS_DEPLOYMENT_TARGET = 2.0; - }; - name = Release; - }; - OBJ_28 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD = /usr/bin/true; - OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -target x86_64-apple-macosx10.10 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - OBJ_29 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD = /usr/bin/true; - OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -target x86_64-apple-macosx10.10 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - OBJ_3 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_OBJC_ARC = YES; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SWIFT_PACKAGE=1", - "DEBUG=1", - ); - MACOSX_DEPLOYMENT_TARGET = 10.10; - ONLY_ACTIVE_ARCH = YES; - OTHER_SWIFT_FLAGS = "-DXcode"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) SWIFT_PACKAGE DEBUG"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - USE_HEADERMAP = NO; - }; - name = Debug; - }; - OBJ_34 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Debug; - }; - OBJ_35 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Release; - }; - OBJ_39 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - ); - HEADER_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = B9MulticastDelegate.xcodeproj/B9MulticastDelegateTests_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@loader_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 10.10; - OTHER_CFLAGS = "$(inherited)"; - OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - SWIFT_VERSION = 5.0; - TARGET_NAME = B9MulticastDelegateTests; - TVOS_DEPLOYMENT_TARGET = 9.0; - WATCHOS_DEPLOYMENT_TARGET = 2.0; - }; - name = Debug; - }; - OBJ_4 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_OBJC_ARC = YES; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_OPTIMIZATION_LEVEL = s; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SWIFT_PACKAGE=1", - ); - MACOSX_DEPLOYMENT_TARGET = 10.10; - OTHER_SWIFT_FLAGS = "-DXcode"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) SWIFT_PACKAGE"; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - USE_HEADERMAP = NO; - }; - name = Release; - }; - OBJ_40 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - ); - HEADER_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = B9MulticastDelegate.xcodeproj/B9MulticastDelegateTests_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@loader_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 10.10; - OTHER_CFLAGS = "$(inherited)"; - OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - SWIFT_VERSION = 5.0; - TARGET_NAME = B9MulticastDelegateTests; - TVOS_DEPLOYMENT_TARGET = 9.0; - WATCHOS_DEPLOYMENT_TARGET = 2.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - OBJ_2 /* Build configuration list for PBXProject "B9MulticastDelegate" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - OBJ_3 /* Debug */, - OBJ_4 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - OBJ_20 /* Build configuration list for PBXNativeTarget "B9MulticastDelegate" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - OBJ_21 /* Debug */, - OBJ_22 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - OBJ_27 /* Build configuration list for PBXNativeTarget "B9MulticastDelegatePackageDescription" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - OBJ_28 /* Debug */, - OBJ_29 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - OBJ_33 /* Build configuration list for PBXAggregateTarget "B9MulticastDelegatePackageTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - OBJ_34 /* Debug */, - OBJ_35 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - OBJ_38 /* Build configuration list for PBXNativeTarget "B9MulticastDelegateTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - OBJ_39 /* Debug */, - OBJ_40 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = OBJ_1 /* Project object */; -} diff --git a/B9MulticastDelegate.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/B9MulticastDelegate.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index fe1aa71..0000000 --- a/B9MulticastDelegate.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/B9MulticastDelegate.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/B9MulticastDelegate.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index ff23ebc..0000000 --- a/B9MulticastDelegate.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,10 +0,0 @@ - - - - - IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded - - PreviewsEnabled - - - diff --git a/B9MulticastDelegate.xcodeproj/xcshareddata/xcschemes/B9MulticastDelegate.xcscheme b/B9MulticastDelegate.xcodeproj/xcshareddata/xcschemes/B9MulticastDelegate.xcscheme deleted file mode 100644 index 7ddf416..0000000 --- a/B9MulticastDelegate.xcodeproj/xcshareddata/xcschemes/B9MulticastDelegate.xcscheme +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/README.md b/README.md index 9f06519..afe4cfb 100644 --- a/README.md +++ b/README.md @@ -3,19 +3,21 @@ [![Swift Version](https://img.shields.io/badge/Swift-5.3+-EE5533.svg?style=flat-square)](https://swift.org) [![Swift Package Manager](https://img.shields.io/badge/spm-compatible-EE5533.svg?style=flat-square)](https://swift.org/package-manager) [![Build Status](https://img.shields.io/github/workflow/status/b9swift/MulticastDelegate/Swift?style=flat-square&colorA=333333&colorB=EE5533)](https://github.com/b9swift/MulticastDelegate/actions) +[![gitee 镜像](https://img.shields.io/badge/%E9%95%9C%E5%83%8F-gitee-C61E22.svg?style=flat-square)](https://gitee.com/b9swift/MulticastDelegate) +[![GitHub Source](https://img.shields.io/badge/Source-GitHub-24292F.svg?style=flat-square)](https://github.com/b9swift/MulticastDelegate) Multicast delegate is a delegate that can have more than one element in its invocation list. ## Installation -Using Swift Package Manager or import manually. +Use Swift Package Manager or import manually. 你也可以使用 [gitee 镜像](https://gitee.com/b9swift/MulticastDelegate)。 ## Features -- NSHashTable free. It results better performance, support Liunx. -- MulticastDelegate confirms `Sequence`, which means that lots of sequence features available. +- NSHashTable free. It brings better performance and support for Linux. +- MulticastDelegate confirms `Sequence`, which means that lots of sequence features are available. - Thread safe. - Other delightful details, eg: error handling optimization, debug log optimization. @@ -23,14 +25,14 @@ Using Swift Package Manager or import manually. > I'm a big fan of the multicast delegate. I have "invented" and used it since 2014. > -> As Swift’s ABI is stabilized, it's time to move a Swift improvment. +> As Swift’s ABI is stabilized, it's time to move a Swift implementation. > > But I cannot find a satisfied implementation everywhere. So I write one. ## Alternatives -- [jonasman/MulticastDelegate](https://github.com/jonasman/MulticastDelegate) - Use NSHashTable. Operator overloading is not a good idea in my opinion, it is not intuitive and reduces readability. API does not meet design guidelines (Omit needless words). +- [jonasman/MulticastDelegate](https://github.com/jonasman/MulticastDelegate) - Use NSHashTable. Operator overloading is not a good idea, in my opinion. It is not intuitive and reduces readability. API does not meet design guidelines (Omit needless words). - [elano50/MulticastDelegateKit](https://github.com/elano50/MulticastDelegateKit) - Use NSHashTable. - [Kevin Lundberg's](https://www.klundberg.com/blog/notifying-many-delegates-at-once-with-multicast-delegates/) - Generic type should not be `AnyObject`. API does not meet design guidelines (Omit needless words). -- [Greg Read's](http://www.gregread.com/2016/02/23/multicast-delegates-in-swift/) - Missing dupracate check when adding. API does not meet design guidelines (Omit needless words). I dislike remove when invoking. -- [Ivan's](https://medium.com/@ivan_m/multicast-on-swift-3-and-mvvm-c-ff74ce802bcc) - Missing dupracate check when adding. It is odd using an equatable weak wrapper to check duplicates. +- [Greg Read's](http://www.gregread.com/2016/02/23/multicast-delegates-in-swift/) - Missing duplicate check when adding. API does not meet design guidelines (Omit needless words). I dislike removing when invoking. +- [Ivan's](https://medium.com/@ivan_m/multicast-on-swift-3-and-mvvm-c-ff74ce802bcc) - Missing duplicate check when adding. It is odd to use an equatable weak wrapper to check duplicates.