From f0c9a5afd14a52a81f42eef2f4e72917a867234d Mon Sep 17 00:00:00 2001 From: Zev Eisenberg Date: Tue, 23 Jan 2018 14:46:39 -0500 Subject: [PATCH 1/9] Tweaks to make SwiftLint happy. --- RIGImageGallery/RIGImageGalleryViewController.swift | 2 +- RIGImageGalleryDemo/View Controller/ViewController.swift | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/RIGImageGallery/RIGImageGalleryViewController.swift b/RIGImageGallery/RIGImageGalleryViewController.swift index 92818df..36ceb77 100644 --- a/RIGImageGallery/RIGImageGalleryViewController.swift +++ b/RIGImageGallery/RIGImageGalleryViewController.swift @@ -124,7 +124,7 @@ open class RIGImageGalleryViewController: UIPageViewController { self.images = images } - public override init(transitionStyle style: UIPageViewControllerTransitionStyle, navigationOrientation: UIPageViewControllerNavigationOrientation, options: [String : Any]?) { + public override init(transitionStyle style: UIPageViewControllerTransitionStyle, navigationOrientation: UIPageViewControllerNavigationOrientation, options: [String: Any]?) { super.init(transitionStyle: style, navigationOrientation: navigationOrientation, options: options) dataSource = self delegate = self diff --git a/RIGImageGalleryDemo/View Controller/ViewController.swift b/RIGImageGalleryDemo/View Controller/ViewController.swift index 12aa192..fa36717 100644 --- a/RIGImageGalleryDemo/View Controller/ViewController.swift +++ b/RIGImageGalleryDemo/View Controller/ViewController.swift @@ -152,7 +152,6 @@ private extension ViewController { } private extension RIGImageGalleryViewController { - // swiftlint:disable:next large_tuple func handleImageLoadAtIndex(_ index: Int) -> ((Data?, URLResponse?, Error?) -> Void) { return { [weak self] (data: Data?, response: URLResponse?, error: Error?) in guard let image = data.flatMap(UIImage.init), error == nil else { From 3f6a68382bb31a42f5990012345ad194aeb73065 Mon Sep 17 00:00:00 2001 From: Zev Eisenberg Date: Tue, 23 Jan 2018 14:52:34 -0500 Subject: [PATCH 2/9] Update to Swift 4. --- RIGImageGallery.xcodeproj/project.pbxproj | 15 +++++---------- .../RIGImageGalleryViewController.swift | 8 ++++---- .../AutoCenteringScrollViewTests.swift | 8 ++++---- .../ImageGalleryViewControllerTests.swift | 2 +- 4 files changed, 14 insertions(+), 19 deletions(-) diff --git a/RIGImageGallery.xcodeproj/project.pbxproj b/RIGImageGallery.xcodeproj/project.pbxproj index 2717efd..386f19a 100644 --- a/RIGImageGallery.xcodeproj/project.pbxproj +++ b/RIGImageGallery.xcodeproj/project.pbxproj @@ -343,12 +343,12 @@ 72A828081C68F24500B25CEE = { CreatedOnToolsVersion = 7.2.1; DevelopmentTeam = 336S848KQ4; - LastSwiftMigration = 0810; + LastSwiftMigration = 0920; }; 72BA26511C6B985900F1FE22 = { CreatedOnToolsVersion = 7.2.1; DevelopmentTeam = 336S848KQ4; - LastSwiftMigration = 0810; + LastSwiftMigration = 0920; }; }; }; @@ -519,7 +519,6 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.raizlabs.RIGImageGalleryTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -532,7 +531,6 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.raizlabs.RIGImageGalleryTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; }; name = Release; }; @@ -548,7 +546,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.raizlabs.RIGImageGalleryDemoUITests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 3.0; TEST_TARGET_NAME = RIGImageGalleryDemo; }; name = Debug; @@ -564,7 +561,6 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.raizlabs.RIGImageGalleryDemoUITests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; TEST_TARGET_NAME = RIGImageGalleryDemo; }; name = Release; @@ -613,6 +609,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -656,6 +653,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -676,7 +674,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.raizlabs.RigImageGalleryDemo; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; - SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -693,7 +690,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.raizlabs.RigImageGalleryDemo; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; - SWIFT_VERSION = 3.0; }; name = Release; }; @@ -714,7 +710,6 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -734,7 +729,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.raizlabs.RIGImageGallery; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; }; name = Release; }; @@ -757,6 +751,7 @@ 722523701E3276F300D50D16 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; 72A827F31C68F17900B25CEE /* Build configuration list for PBXProject "RIGImageGallery" */ = { isa = XCConfigurationList; diff --git a/RIGImageGallery/RIGImageGalleryViewController.swift b/RIGImageGallery/RIGImageGalleryViewController.swift index 36ceb77..4cb0ac2 100644 --- a/RIGImageGallery/RIGImageGalleryViewController.swift +++ b/RIGImageGallery/RIGImageGalleryViewController.swift @@ -213,16 +213,16 @@ extension RIGImageGalleryViewController: UIGestureRecognizerDelegate { extension RIGImageGalleryViewController { - func toggleBarVisiblity(_ recognizer: UITapGestureRecognizer) { + @objc func toggleBarVisiblity(_ recognizer: UITapGestureRecognizer) { navigationBarsHidden = !navigationBarsHidden updateBarStatus(animated: true) } - func toggleZoom(_ recognizer: UITapGestureRecognizer) { + @objc func toggleZoom(_ recognizer: UITapGestureRecognizer) { currentImageViewController?.scrollView.toggleZoom() } - func dismissPhotoView(_ sender: UIBarButtonItem) { + @objc func dismissPhotoView(_ sender: UIBarButtonItem) { if dismissHandler != nil { dismissHandler?(self) } @@ -231,7 +231,7 @@ extension RIGImageGalleryViewController { } } - func performAction(_ sender: UIBarButtonItem) { + @objc func performAction(_ sender: UIBarButtonItem) { if let item = currentImageViewController?.viewerItem { actionButtonHandler?(self, item) } diff --git a/RIGImageGalleryTests/AutoCenteringScrollViewTests.swift b/RIGImageGalleryTests/AutoCenteringScrollViewTests.swift index f9a36e2..57e399f 100644 --- a/RIGImageGalleryTests/AutoCenteringScrollViewTests.swift +++ b/RIGImageGalleryTests/AutoCenteringScrollViewTests.swift @@ -34,13 +34,13 @@ class AutoCenteringScrollViewTests: XCTestCase { scrollView.zoomImage = image // double setting to get code coverage on the short circuit for not doing any work when setting the same image scrollView.zoomImage = image - XCTAssertEqualWithAccuracy(scrollView.minimumZoomScale, (400.0 - 50.0 - 50.0) / 1920, accuracy: 0.0001, "min zoom scale is should equal the width minus insets divided by image width") + XCTAssertEqual(scrollView.minimumZoomScale, (400.0 - 50.0 - 50.0) / 1920, accuracy: 0.0001, "min zoom scale is should equal the width minus insets divided by image width") scrollView.zoomImage = UIImage.genericImage(.tall) - XCTAssertEqualWithAccuracy(scrollView.minimumZoomScale, (400.0 - 25.0 - 25.0) / 720.0, accuracy: 0.0001, "Scoll view's min scroll view should equal the height minus insets divied be image height for taller images") + XCTAssertEqual(scrollView.minimumZoomScale, (400.0 - 25.0 - 25.0) / 720.0, accuracy: 0.0001, "Scoll view's min scroll view should equal the height minus insets divied be image height for taller images") scrollView.baseInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) - XCTAssertEqualWithAccuracy(scrollView.minimumZoomScale, 400.0 / 720.0, accuracy: 0.0001, "Scoll view's min scroll view should equal the height minus insets divied be image height for taller images") + XCTAssertEqual(scrollView.minimumZoomScale, 400.0 / 720.0, accuracy: 0.0001, "Scoll view's min scroll view should equal the height minus insets divied be image height for taller images") scrollView.baseInsets = targetInsets - XCTAssertEqualWithAccuracy(scrollView.minimumZoomScale, (400.0 - 25.0 - 25.0) / 720.0, accuracy: 0.0001, "Scoll view's min scroll view should equal the height minus insets divied be image height for taller images") + XCTAssertEqual(scrollView.minimumZoomScale, (400.0 - 25.0 - 25.0) / 720.0, accuracy: 0.0001, "Scoll view's min scroll view should equal the height minus insets divied be image height for taller images") scrollView.zoomImage = nil } diff --git a/RIGImageGalleryTests/ImageGalleryViewControllerTests.swift b/RIGImageGalleryTests/ImageGalleryViewControllerTests.swift index 0fef2ee..020c3d3 100644 --- a/RIGImageGalleryTests/ImageGalleryViewControllerTests.swift +++ b/RIGImageGalleryTests/ImageGalleryViewControllerTests.swift @@ -59,7 +59,7 @@ class ImageGalleryViewControllerTests: XCTestCase { imageGallery.dismissPhotoView(UIBarButtonItem()) imageGallery.actionButton = UIBarButtonItem() let actionFired = self.expectation(description: "action will fire on completion") - imageGallery.actionButtonHandler = { _ in + imageGallery.actionButtonHandler = { (_, _) in actionFired.fulfill() } imageGallery.perform((imageGallery.navigationItem.rightBarButtonItem?.action)!, with: imageGallery) From 5c670d0ee4d4ceb1e6adc20e6549a390da8d1480 Mon Sep 17 00:00:00 2001 From: Zev Eisenberg Date: Tue, 23 Jan 2018 14:53:01 -0500 Subject: [PATCH 3/9] Update for Xcode 9.2. --- RIGImageGallery.xcodeproj/project.pbxproj | 14 +++++++++++++- .../xcschemes/RIGImageGallery.xcscheme | 4 +++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/RIGImageGallery.xcodeproj/project.pbxproj b/RIGImageGallery.xcodeproj/project.pbxproj index 386f19a..f1031ac 100644 --- a/RIGImageGallery.xcodeproj/project.pbxproj +++ b/RIGImageGallery.xcodeproj/project.pbxproj @@ -327,7 +327,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0820; - LastUpgradeCheck = 0810; + LastUpgradeCheck = 0920; ORGANIZATIONNAME = Raizlabs; TargetAttributes = { 72060F4F1D2FFA6C001281E0 = { @@ -573,14 +573,20 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = 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_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -624,14 +630,20 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = 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_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; diff --git a/RIGImageGallery.xcodeproj/xcshareddata/xcschemes/RIGImageGallery.xcscheme b/RIGImageGallery.xcodeproj/xcshareddata/xcschemes/RIGImageGallery.xcscheme index 3f86bc1..aa87c4e 100644 --- a/RIGImageGallery.xcodeproj/xcshareddata/xcschemes/RIGImageGallery.xcscheme +++ b/RIGImageGallery.xcodeproj/xcshareddata/xcschemes/RIGImageGallery.xcscheme @@ -1,6 +1,6 @@ @@ -56,6 +57,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" From 7dc729adc813c5aaa719011b95873bc57a471870 Mon Sep 17 00:00:00 2001 From: Zev Eisenberg Date: Tue, 23 Jan 2018 14:59:35 -0500 Subject: [PATCH 4/9] Build on Xcode 9.2. --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index ad37c1d..78502c6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,7 @@ matrix: exclude: - os: osx include: - - osx_image: xcode8 + - osx_image: xcode9.2 env: - XCODE_ACTION="clean test" XCODE_TOOLCHAIN="swift" @@ -26,7 +26,7 @@ matrix: - brew outdated carthage || brew upgrade carthage - carthage build --no-skip-current - test -d Carthage/Build/iOS/RIGImageGallery.framework || exit 1 - - osx_image: xcode8 + - osx_image: xcode9.2 env: - JOB=COCOAPODS script: From 42f56a0bffb6dac18716489b40253486bceba221 Mon Sep 17 00:00:00 2001 From: Zev Eisenberg Date: Tue, 23 Jan 2018 15:00:05 -0500 Subject: [PATCH 5/9] Capitalize Gemfile. --- gemfile => Gemfile | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename gemfile => Gemfile (100%) diff --git a/gemfile b/Gemfile similarity index 100% rename from gemfile rename to Gemfile From 520a6a742c6a2923cf2c5b1ca100f05163bbe8be Mon Sep 17 00:00:00 2001 From: Zev Eisenberg Date: Tue, 23 Jan 2018 15:14:35 -0500 Subject: [PATCH 6/9] Update CocoaPods. --- Gemfile | 2 +- Gemfile.lock | 61 +++++++++++++++++++++-------------------- RIGImageGallery.podspec | 1 + 3 files changed, 33 insertions(+), 31 deletions(-) diff --git a/Gemfile b/Gemfile index 1ae2edb..94624bf 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,3 @@ source "https://rubygems.org" -gem 'cocoapods', '~> 1.1' +gem 'cocoapods', '1.4.0' diff --git a/Gemfile.lock b/Gemfile.lock index 6f3e523..bba74a4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,73 +1,74 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (2.3.5) - activesupport (4.2.8) + CFPropertyList (2.3.6) + activesupport (4.2.10) i18n (~> 0.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - claide (1.0.1) - cocoapods (1.2.0) + claide (1.0.2) + cocoapods (1.4.0) activesupport (>= 4.0.2, < 5) - claide (>= 1.0.1, < 2.0) - cocoapods-core (= 1.2.0) - cocoapods-deintegrate (>= 1.0.1, < 2.0) + claide (>= 1.0.2, < 2.0) + cocoapods-core (= 1.4.0) + cocoapods-deintegrate (>= 1.0.2, < 2.0) cocoapods-downloader (>= 1.1.3, < 2.0) cocoapods-plugins (>= 1.0.0, < 2.0) cocoapods-search (>= 1.0.0, < 2.0) cocoapods-stats (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.1.2, < 2.0) + cocoapods-trunk (>= 1.3.0, < 2.0) cocoapods-try (>= 1.1.0, < 2.0) - colored (~> 1.2) + colored2 (~> 3.1) escape (~> 0.0.4) fourflusher (~> 2.0.1) gh_inspector (~> 1.0) - molinillo (~> 0.5.5) + molinillo (~> 0.6.4) nap (~> 1.0) - ruby-macho (~> 0.2.5) - xcodeproj (>= 1.4.1, < 2.0) - cocoapods-core (1.2.0) - activesupport (>= 4.0.2, < 5) + ruby-macho (~> 1.1) + xcodeproj (>= 1.5.4, < 2.0) + cocoapods-core (1.4.0) + activesupport (>= 4.0.2, < 6) fuzzy_match (~> 2.0.4) nap (~> 1.0) - cocoapods-deintegrate (1.0.1) + cocoapods-deintegrate (1.0.2) cocoapods-downloader (1.1.3) cocoapods-plugins (1.0.0) nap cocoapods-search (1.0.0) cocoapods-stats (1.0.0) - cocoapods-trunk (1.1.2) + cocoapods-trunk (1.3.0) nap (>= 0.8, < 2.0) - netrc (= 0.7.8) + netrc (~> 0.11) cocoapods-try (1.1.0) - colored (1.2) + colored2 (3.1.2) + concurrent-ruby (1.0.5) escape (0.0.4) fourflusher (2.0.1) fuzzy_match (2.0.4) gh_inspector (1.0.3) - i18n (0.8.1) - minitest (5.10.1) - molinillo (0.5.6) + i18n (0.9.3) + concurrent-ruby (~> 1.0) + minitest (5.11.1) + molinillo (0.6.4) nanaimo (0.2.3) nap (1.1.0) - netrc (0.7.8) - ruby-macho (0.2.6) + netrc (0.11.0) + ruby-macho (1.1.0) thread_safe (0.3.6) - tzinfo (1.2.2) + tzinfo (1.2.4) thread_safe (~> 0.1) - xcodeproj (1.4.2) + xcodeproj (1.5.4) CFPropertyList (~> 2.3.3) - activesupport (>= 3) - claide (>= 1.0.1, < 2.0) - colored (~> 1.2) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) nanaimo (~> 0.2.3) PLATFORMS ruby DEPENDENCIES - cocoapods (~> 1.1) + cocoapods (= 1.4.0) BUNDLED WITH - 1.14.5 + 1.16.0 diff --git a/RIGImageGallery.podspec b/RIGImageGallery.podspec index 24455f2..23af271 100644 --- a/RIGImageGallery.podspec +++ b/RIGImageGallery.podspec @@ -2,6 +2,7 @@ Pod::Spec.new do |s| s.name = "RIGImageGallery" s.version = "0.3.1" s.summary = "An image gallery view controller designed to work with the Raizlabs Interface Guidelines for iOS." + s.swift_version = "4.0" s.description = <<-DESC RIGImageGallery is an image gallery for iOS written in Swift. From a7db9129413143720d44f300c67d7a83b7fe3496 Mon Sep 17 00:00:00 2001 From: Zev Eisenberg Date: Tue, 23 Jan 2018 15:25:21 -0500 Subject: [PATCH 7/9] Use modern convention for specifying destination. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 78502c6..a39a15f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ matrix: env: - XCODE_ACTION="clean test" XCODE_TOOLCHAIN="swift" - XCODE_DESTINATION="platform=iOS Simulator,id=237D7619-4A4E-4624-8925-67A42A8A690A" + XCODE_DESTINATION="platform=iOS Simulator,name=iPhone 6s" - osx_image: xcode8 env: - JOB=CARTHAGE From ee66d040ff961800119b90395ca7008d8155931d Mon Sep 17 00:00:00 2001 From: Zev Eisenberg Date: Tue, 23 Jan 2018 17:02:22 -0500 Subject: [PATCH 8/9] Include only Swift files in source_files. --- RIGImageGallery.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RIGImageGallery.podspec b/RIGImageGallery.podspec index 23af271..fee86a6 100644 --- a/RIGImageGallery.podspec +++ b/RIGImageGallery.podspec @@ -18,7 +18,7 @@ Pod::Spec.new do |s| s.ios.deployment_target = '9.0' - s.source_files = 'RIGImageGallery', 'RIGImageGallery/**/*' + s.source_files = 'RIGImageGallery', 'RIGImageGallery/**/*.swift' s.frameworks = 'Foundation', 'UIKit' From f0dfe9ac5813091d58c6cf3c915989d33b53efe8 Mon Sep 17 00:00:00 2001 From: Zev Eisenberg Date: Tue, 23 Jan 2018 20:17:17 -0500 Subject: [PATCH 9/9] Fix crash when gallery is dismissed while upates are pending. --- RIGImageGallery/RIGImageGalleryViewController.swift | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/RIGImageGallery/RIGImageGalleryViewController.swift b/RIGImageGallery/RIGImageGalleryViewController.swift index 4cb0ac2..1ea8b0b 100644 --- a/RIGImageGallery/RIGImageGalleryViewController.swift +++ b/RIGImageGallery/RIGImageGalleryViewController.swift @@ -310,9 +310,10 @@ private extension RIGImageGalleryViewController { for viewController in childViewControllers { if let index = indexOf(viewController: viewController, imagesArray: oldValue), let childView = viewController as? RIGSingleImageViewController, index < images.count { - DispatchQueue.main.async { [unowned self] in - childView.viewerItem = self.images[index] - childView.scrollView.baseInsets = self.scrollViewInset + DispatchQueue.main.async { [weak self] in + guard let strongSelf = self else { return } + childView.viewerItem = strongSelf.images[index] + childView.scrollView.baseInsets = strongSelf.scrollViewInset } } }