From ea387a228fe968765e38b0ca07d0d7e1d669042b Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Sat, 8 Jul 2017 12:29:10 -0700 Subject: [PATCH] Convert RSCore to Swift 4. Build still broken. --- Frameworks/RSCore/RSCore.xcodeproj/project.pbxproj | 10 ++++------ Frameworks/RSCore/RSCore/DiskSaver.swift | 2 +- Frameworks/RSCore/RSCore/NSWindow-Extensions.swift | 7 ++++--- Frameworks/RSCore/RSCore/RSToolbarItem.swift | 2 +- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Frameworks/RSCore/RSCore.xcodeproj/project.pbxproj b/Frameworks/RSCore/RSCore.xcodeproj/project.pbxproj index 1a1ff6ee1..64cce8d27 100755 --- a/Frameworks/RSCore/RSCore.xcodeproj/project.pbxproj +++ b/Frameworks/RSCore/RSCore.xcodeproj/project.pbxproj @@ -755,7 +755,6 @@ PRODUCT_NAME = RSCore; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -783,7 +782,6 @@ PRODUCT_NAME = RSCore; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -855,7 +853,9 @@ RUN_CLANG_STATIC_ANALYZER = YES; SDKROOT = macosx; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; SWIFT_TREAT_WARNINGS_AS_ERRORS = YES; + SWIFT_VERSION = 4.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -920,7 +920,9 @@ RUN_CLANG_STATIC_ANALYZER = YES; SDKROOT = macosx; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; SWIFT_TREAT_WARNINGS_AS_ERRORS = YES; + SWIFT_VERSION = 4.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -946,7 +948,6 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.ranchero.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -970,7 +971,6 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.ranchero.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; }; name = Release; }; @@ -991,7 +991,6 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.ranchero.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -1008,7 +1007,6 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.ranchero.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; }; name = Release; }; diff --git a/Frameworks/RSCore/RSCore/DiskSaver.swift b/Frameworks/RSCore/RSCore/DiskSaver.swift index ffa9a81cc..c129d12ae 100755 --- a/Frameworks/RSCore/RSCore/DiskSaver.swift +++ b/Frameworks/RSCore/RSCore/DiskSaver.swift @@ -53,7 +53,7 @@ public final class DiskSaver: NSObject { coalescedSaveTimer = Timer.scheduledTimer(timeInterval: coalescedSaveInterval, target: self, selector: #selector(saveToDisk), userInfo: nil, repeats: false) } - public dynamic func saveToDisk() { + @objc public dynamic func saveToDisk() { invalidateSaveTimer() if !dirty { diff --git a/Frameworks/RSCore/RSCore/NSWindow-Extensions.swift b/Frameworks/RSCore/RSCore/NSWindow-Extensions.swift index 08a7d21e2..edd5d01ce 100755 --- a/Frameworks/RSCore/RSCore/NSWindow-Extensions.swift +++ b/Frameworks/RSCore/RSCore/NSWindow-Extensions.swift @@ -11,9 +11,10 @@ import Cocoa public extension NSWindow { public func makeFirstResponderUnlessDescendantIsFirstResponder(_ responder: NSResponder) { - - if !firstResponder.hasAncestor(responder) { - makeFirstResponder(responder) + + if let fr = firstResponder, fr.hasAncestor(responder) { + return } + makeFirstResponder(responder) } } diff --git a/Frameworks/RSCore/RSCore/RSToolbarItem.swift b/Frameworks/RSCore/RSCore/RSToolbarItem.swift index a8d4d0637..d9c866db7 100755 --- a/Frameworks/RSCore/RSCore/RSToolbarItem.swift +++ b/Frameworks/RSCore/RSCore/RSToolbarItem.swift @@ -45,7 +45,7 @@ private extension RSToolbarItem { } } - if let appDelegate = NSApplication.shared().delegate { + if let appDelegate = NSApplication.shared.delegate { if let validated = validateWithResponder(appDelegate) { return validated }