Skip to content

Commit 94ac78d

Browse files
authored
Merge pull request #49 from vadymmarkov/swift4
Swift4 migration
2 parents 0e08f8c + 64201c4 commit 94ac78d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+228
-246
lines changed

.swift-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.0
1+
4.0

.travis.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
osx_image: xcode8
1+
osx_image: xcode9
22
language: objective-c
3+
xcode_sdk: iphonesimulator10.0
34

45
before_install:
56
- brew update
67
- if brew outdated | grep -qx carthage; then brew upgrade carthage; fi
78
- travis_wait 35 carthage bootstrap --platform iOS
89

910
script:
10-
- xcodebuild clean build -project Beethoven.xcodeproj -scheme "Beethoven-iOS" -sdk iphonesimulator | xcpretty && exit ${PIPESTATUS[0]}
11-
- xcodebuild test -project Beethoven.xcodeproj -scheme "Beethoven-iOS" -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6,OS=10.0' | xcpretty && exit ${PIPESTATUS[0]}
11+
- set -o pipefail
12+
- travis_retry xcodebuild -project Beethoven.xcodeproj -scheme "Beethoven-iOS" -destination "platform=iOS Simulator,name=iPhone 6" build-for-testing test | xcpretty
1213

1314
notifications:
1415
email: false

Beethoven.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Pod::Spec.new do |s|
22
s.name = "Beethoven"
33
s.summary = "A maestro of pitch detection"
4-
s.version = "3.0.1"
4+
s.version = "4.0.0"
55
s.homepage = "https://github.com/vadymmarkov/Beethoven"
66
s.license = 'MIT'
77
s.author = { "Vadym Markov" => "[email protected]" }
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
1717
s.ios.source_files = 'Source/**/*'
1818

1919
s.frameworks = 'Foundation', 'AVFoundation', 'Accelerate'
20-
s.dependency 'Pitchy'
20+
s.dependency 'Pitchy', '~> 3.0'
2121

2222
s.pod_target_xcconfig = { 'SWIFT_VERSION' => '3.0' }
2323
end

Beethoven.xcodeproj/project.pbxproj

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -377,16 +377,16 @@
377377
isa = PBXProject;
378378
attributes = {
379379
LastSwiftUpdateCheck = 0720;
380-
LastUpgradeCheck = 0800;
380+
LastUpgradeCheck = 0900;
381381
ORGANIZATIONNAME = "Vadym Markov";
382382
TargetAttributes = {
383383
D51575AA1C343B77006F8E75 = {
384384
CreatedOnToolsVersion = 7.2;
385-
LastSwiftMigration = 0800;
385+
LastSwiftMigration = 0900;
386386
};
387387
D51575B41C343B77006F8E75 = {
388388
CreatedOnToolsVersion = 7.2;
389-
LastSwiftMigration = 0800;
389+
LastSwiftMigration = 0900;
390390
};
391391
};
392392
};
@@ -539,14 +539,20 @@
539539
CLANG_CXX_LIBRARY = "libc++";
540540
CLANG_ENABLE_MODULES = YES;
541541
CLANG_ENABLE_OBJC_ARC = YES;
542+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
542543
CLANG_WARN_BOOL_CONVERSION = YES;
544+
CLANG_WARN_COMMA = YES;
543545
CLANG_WARN_CONSTANT_CONVERSION = YES;
544546
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
545547
CLANG_WARN_EMPTY_BODY = YES;
546548
CLANG_WARN_ENUM_CONVERSION = YES;
547549
CLANG_WARN_INFINITE_RECURSION = YES;
548550
CLANG_WARN_INT_CONVERSION = YES;
551+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
552+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
549553
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
554+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
555+
CLANG_WARN_STRICT_PROTOTYPES = YES;
550556
CLANG_WARN_SUSPICIOUS_MOVE = YES;
551557
CLANG_WARN_UNREACHABLE_CODE = YES;
552558
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -589,14 +595,20 @@
589595
CLANG_CXX_LIBRARY = "libc++";
590596
CLANG_ENABLE_MODULES = YES;
591597
CLANG_ENABLE_OBJC_ARC = YES;
598+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
592599
CLANG_WARN_BOOL_CONVERSION = YES;
600+
CLANG_WARN_COMMA = YES;
593601
CLANG_WARN_CONSTANT_CONVERSION = YES;
594602
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
595603
CLANG_WARN_EMPTY_BODY = YES;
596604
CLANG_WARN_ENUM_CONVERSION = YES;
597605
CLANG_WARN_INFINITE_RECURSION = YES;
598606
CLANG_WARN_INT_CONVERSION = YES;
607+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
608+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
599609
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
610+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
611+
CLANG_WARN_STRICT_PROTOTYPES = YES;
600612
CLANG_WARN_SUSPICIOUS_MOVE = YES;
601613
CLANG_WARN_UNREACHABLE_CODE = YES;
602614
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -644,7 +656,8 @@
644656
PRODUCT_BUNDLE_IDENTIFIER = com.vadymmarkov.Beethoven;
645657
PRODUCT_NAME = Beethoven;
646658
SKIP_INSTALL = YES;
647-
SWIFT_VERSION = 3.0;
659+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
660+
SWIFT_VERSION = 4.0;
648661
};
649662
name = Debug;
650663
};
@@ -667,7 +680,8 @@
667680
PRODUCT_BUNDLE_IDENTIFIER = com.vadymmarkov.Beethoven;
668681
PRODUCT_NAME = Beethoven;
669682
SKIP_INSTALL = YES;
670-
SWIFT_VERSION = 3.0;
683+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
684+
SWIFT_VERSION = 4.0;
671685
};
672686
name = Release;
673687
};
@@ -684,7 +698,8 @@
684698
PRODUCT_BUNDLE_IDENTIFIER = com.vadymmarkov.BeethovenTests;
685699
PRODUCT_NAME = "$(TARGET_NAME)";
686700
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
687-
SWIFT_VERSION = 3.0;
701+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
702+
SWIFT_VERSION = 4.0;
688703
};
689704
name = Debug;
690705
};
@@ -700,7 +715,8 @@
700715
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
701716
PRODUCT_BUNDLE_IDENTIFIER = com.vadymmarkov.BeethovenTests;
702717
PRODUCT_NAME = "$(TARGET_NAME)";
703-
SWIFT_VERSION = 3.0;
718+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
719+
SWIFT_VERSION = 4.0;
704720
};
705721
name = Release;
706722
};

Beethoven.xcodeproj/xcshareddata/xcschemes/Beethoven-iOS.xcscheme

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "0800"
3+
LastUpgradeVersion = "0900"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"
@@ -26,6 +26,7 @@
2626
buildConfiguration = "Debug"
2727
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2828
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29+
language = ""
2930
shouldUseLaunchSchemeArgsEnv = "YES">
3031
<Testables>
3132
<TestableReference
@@ -55,6 +56,7 @@
5556
buildConfiguration = "Debug"
5657
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
5758
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
59+
language = ""
5860
launchStyle = "0"
5961
useCustomWorkingDirectory = "NO"
6062
ignoresPersistentStateOnLaunch = "NO"

Cartfile.resolved

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
github "Quick/Nimble" "v6.0.1"
2-
github "Quick/Quick" "v1.1.0"
3-
github "vadymmarkov/Pitchy" "2.0.1"
1+
github "Quick/Nimble" "v7.0.2"
2+
github "Quick/Quick" "v1.2.0"
3+
github "vadymmarkov/Pitchy" "3.0.0"

Example/GuitarTuner/.swift-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.0
1+
4.0

Example/GuitarTuner/GuitarTuner.xcodeproj/project.pbxproj

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,13 +145,13 @@
145145
D57D40F51BE95A350026B005 /* Project object */ = {
146146
isa = PBXProject;
147147
attributes = {
148-
LastUpgradeCheck = 0800;
148+
LastUpgradeCheck = 0900;
149149
ORGANIZATIONNAME = "Vadym Markov";
150150
TargetAttributes = {
151151
D57D40FC1BE95A350026B005 = {
152152
CreatedOnToolsVersion = 7.0.1;
153153
DevelopmentTeam = 6YMA3EN78R;
154-
LastSwiftMigration = 0800;
154+
LastSwiftMigration = 0900;
155155
};
156156
};
157157
};
@@ -192,13 +192,16 @@
192192
files = (
193193
);
194194
inputPaths = (
195+
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
196+
"${PODS_ROOT}/Manifest.lock",
195197
);
196198
name = "[CP] Check Pods Manifest.lock";
197199
outputPaths = (
200+
"$(DERIVED_FILE_DIR)/Pods-GuitarTuner-checkManifestLockResult.txt",
198201
);
199202
runOnlyForDeploymentPostprocessing = 0;
200203
shellPath = /bin/sh;
201-
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
204+
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
202205
showEnvVarsInLog = 0;
203206
};
204207
1962EBAD1F8E34314E982594 /* [CP] Check Pods Manifest.lock */ = {
@@ -237,9 +240,18 @@
237240
files = (
238241
);
239242
inputPaths = (
243+
"${SRCROOT}/Pods/Target Support Files/Pods-GuitarTuner/Pods-GuitarTuner-frameworks.sh",
244+
"${BUILT_PRODUCTS_DIR}/Beethoven/Beethoven.framework",
245+
"${BUILT_PRODUCTS_DIR}/Cartography/Cartography.framework",
246+
"${BUILT_PRODUCTS_DIR}/Hue/Hue.framework",
247+
"${BUILT_PRODUCTS_DIR}/Pitchy/Pitchy.framework",
240248
);
241249
name = "[CP] Embed Pods Frameworks";
242250
outputPaths = (
251+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Beethoven.framework",
252+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Cartography.framework",
253+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Hue.framework",
254+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Pitchy.framework",
243255
);
244256
runOnlyForDeploymentPostprocessing = 0;
245257
shellPath = /bin/sh;
@@ -310,14 +322,20 @@
310322
CLANG_CXX_LIBRARY = "libc++";
311323
CLANG_ENABLE_MODULES = YES;
312324
CLANG_ENABLE_OBJC_ARC = YES;
325+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
313326
CLANG_WARN_BOOL_CONVERSION = YES;
327+
CLANG_WARN_COMMA = YES;
314328
CLANG_WARN_CONSTANT_CONVERSION = YES;
315329
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
316330
CLANG_WARN_EMPTY_BODY = YES;
317331
CLANG_WARN_ENUM_CONVERSION = YES;
318332
CLANG_WARN_INFINITE_RECURSION = YES;
319333
CLANG_WARN_INT_CONVERSION = YES;
334+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
335+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
320336
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
337+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
338+
CLANG_WARN_STRICT_PROTOTYPES = YES;
321339
CLANG_WARN_SUSPICIOUS_MOVE = YES;
322340
CLANG_WARN_UNREACHABLE_CODE = YES;
323341
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -357,14 +375,20 @@
357375
CLANG_CXX_LIBRARY = "libc++";
358376
CLANG_ENABLE_MODULES = YES;
359377
CLANG_ENABLE_OBJC_ARC = YES;
378+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
360379
CLANG_WARN_BOOL_CONVERSION = YES;
380+
CLANG_WARN_COMMA = YES;
361381
CLANG_WARN_CONSTANT_CONVERSION = YES;
362382
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
363383
CLANG_WARN_EMPTY_BODY = YES;
364384
CLANG_WARN_ENUM_CONVERSION = YES;
365385
CLANG_WARN_INFINITE_RECURSION = YES;
366386
CLANG_WARN_INT_CONVERSION = YES;
387+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
388+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
367389
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
390+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
391+
CLANG_WARN_STRICT_PROTOTYPES = YES;
368392
CLANG_WARN_SUSPICIOUS_MOVE = YES;
369393
CLANG_WARN_UNREACHABLE_CODE = YES;
370394
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -401,7 +425,8 @@
401425
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
402426
PRODUCT_BUNDLE_IDENTIFIER = com.vadymmarkov.GuitarTuner;
403427
PRODUCT_NAME = GuitarTuner;
404-
SWIFT_VERSION = 3.0;
428+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
429+
SWIFT_VERSION = 4.0;
405430
};
406431
name = Debug;
407432
};
@@ -416,7 +441,8 @@
416441
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
417442
PRODUCT_BUNDLE_IDENTIFIER = com.vadymmarkov.GuitarTuner;
418443
PRODUCT_NAME = GuitarTuner;
419-
SWIFT_VERSION = 3.0;
444+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
445+
SWIFT_VERSION = 4.0;
420446
};
421447
name = Release;
422448
};

Example/GuitarTuner/GuitarTuner/Source/AppDelegate.swift

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,12 @@ import Hue
33

44
@UIApplicationMain
55
class AppDelegate: UIResponder, UIApplicationDelegate {
6-
76
var window: UIWindow?
7+
lazy var navigationController: UINavigationController = .init(rootViewController: self.viewController)
8+
lazy var viewController: ViewController = .init()
89

9-
lazy var navigationController: UINavigationController = { [unowned self] in
10-
let controller = UINavigationController(rootViewController: self.viewController)
11-
return controller
12-
}()
13-
14-
lazy var viewController: ViewController = {
15-
let controller = ViewController()
16-
return controller
17-
}()
18-
19-
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
10+
func application(_ application: UIApplication,
11+
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
2012
window = UIWindow(frame: UIScreen.main.bounds)
2113
window?.rootViewController = navigationController
2214

@@ -27,14 +19,14 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
2719
return true
2820
}
2921

30-
func applyStyles() {
22+
private func applyStyles() {
3123
let navigationBar = UINavigationBar.appearance()
3224
navigationBar.barStyle = .black
3325
navigationBar.barTintColor = UIColor(hex: "111011")
3426
navigationBar.isTranslucent = false
3527
navigationBar.shadowImage = UIImage()
3628
navigationBar.titleTextAttributes = [
37-
NSForegroundColorAttributeName: UIColor.white
29+
NSAttributedStringKey.foregroundColor: UIColor.white
3830
]
3931
}
4032
}

0 commit comments

Comments
 (0)