mirror of
https://github.com/samsonjs/Advanced-NSOperations.git
synced 2026-03-25 08:25:47 +00:00
Update to Swift 5
This commit is contained in:
parent
8b288e8107
commit
5537aaa9bc
7 changed files with 27 additions and 21 deletions
|
|
@ -345,6 +345,7 @@
|
|||
551B9BDC1AEB1C9700302388 = {
|
||||
CreatedOnToolsVersion = 6.3;
|
||||
DevelopmentTeam = X45WPY5JFZ;
|
||||
LastSwiftMigration = 1320;
|
||||
SystemCapabilities = {
|
||||
com.apple.iCloud = {
|
||||
enabled = 1;
|
||||
|
|
@ -581,7 +582,7 @@
|
|||
PRODUCT_BUNDLE_IDENTIFIER = "net.samhuri.apple-samplecode.Earthquakes";
|
||||
PRODUCT_NAME = Earthquakes;
|
||||
PROVISIONING_PROFILE = "";
|
||||
SWIFT_VERSION = 4.0;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -599,7 +600,7 @@
|
|||
PRODUCT_BUNDLE_IDENTIFIER = "net.samhuri.apple-samplecode.Earthquakes";
|
||||
PRODUCT_NAME = Earthquakes;
|
||||
PROVISIONING_PROFILE = "";
|
||||
SWIFT_VERSION = 4.0;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Release;
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ class AlertOperation: EarthquakeOperation {
|
|||
addCondition(condition: MutuallyExclusive<UIViewController>())
|
||||
}
|
||||
|
||||
func addAction(title: String, style: UIAlertActionStyle = .default, handler: @escaping (AlertOperation) -> Void = { _ in }) {
|
||||
func addAction(title: String, style: UIAlertAction.Style = .default, handler: @escaping (AlertOperation) -> Void = { _ in }) {
|
||||
let action = UIAlertAction(title: title, style: style) { [weak self] _ in
|
||||
if let strongSelf = self {
|
||||
handler(strongSelf)
|
||||
|
|
|
|||
|
|
@ -18,16 +18,16 @@ import UIKit
|
|||
class BackgroundObserver: NSObject, OperationObserver {
|
||||
// MARK: Properties
|
||||
|
||||
private var identifier = UIBackgroundTaskInvalid
|
||||
private var identifier = UIBackgroundTaskIdentifier.invalid
|
||||
private var isInBackground = false
|
||||
|
||||
override init() {
|
||||
super.init()
|
||||
|
||||
// We need to know when the application moves to/from the background.
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(BackgroundObserver.didEnterBackground(notification:)), name: NSNotification.Name.UIApplicationDidEnterBackground, object: nil)
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(BackgroundObserver.didEnterBackground(notification:)), name: UIApplication.didEnterBackgroundNotification, object: nil)
|
||||
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(BackgroundObserver.didEnterForeground(notification:)), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(BackgroundObserver.didEnterForeground(notification:)), name: UIApplication.didBecomeActiveNotification, object: nil)
|
||||
|
||||
isInBackground = UIApplication.shared.applicationState == .background
|
||||
|
||||
|
|
@ -56,7 +56,7 @@ class BackgroundObserver: NSObject, OperationObserver {
|
|||
}
|
||||
|
||||
private func startBackgroundTask() {
|
||||
if identifier == UIBackgroundTaskInvalid {
|
||||
if identifier == UIBackgroundTaskIdentifier.invalid {
|
||||
identifier = UIApplication.shared.beginBackgroundTask(withName: "BackgroundObserver", expirationHandler: {
|
||||
self.endBackgroundTask()
|
||||
})
|
||||
|
|
@ -64,9 +64,9 @@ class BackgroundObserver: NSObject, OperationObserver {
|
|||
}
|
||||
|
||||
private func endBackgroundTask() {
|
||||
if identifier != UIBackgroundTaskInvalid {
|
||||
UIApplication.shared.endBackgroundTask(identifier)
|
||||
identifier = UIBackgroundTaskInvalid
|
||||
if identifier != UIBackgroundTaskIdentifier.invalid {
|
||||
UIApplication.shared.endBackgroundTask(convertToUIBackgroundTaskIdentifier(identifier.rawValue))
|
||||
identifier = UIBackgroundTaskIdentifier.invalid
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -80,3 +80,8 @@ class BackgroundObserver: NSObject, OperationObserver {
|
|||
endBackgroundTask()
|
||||
}
|
||||
}
|
||||
|
||||
// Helper function inserted by Swift 4.2 migrator.
|
||||
fileprivate func convertToUIBackgroundTaskIdentifier(_ input: Int) -> UIBackgroundTaskIdentifier {
|
||||
return UIBackgroundTaskIdentifier(rawValue: input)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ extension CKContainer {
|
|||
operation fails. If the verification was successful, this value will
|
||||
be `nil`.
|
||||
*/
|
||||
func verifyPermission(permission: CKApplicationPermissions, requestingIfNecessary shouldRequest: Bool = false, completion: @escaping (Error?) -> Void) {
|
||||
func verifyPermission(permission: CKContainer.ApplicationPermissions, requestingIfNecessary shouldRequest: Bool = false, completion: @escaping (Error?) -> Void) {
|
||||
verifyAccountStatus(container: self, permission: permission, shouldRequest: shouldRequest, completion: completion)
|
||||
}
|
||||
}
|
||||
|
|
@ -33,7 +33,7 @@ extension CKContainer {
|
|||
Make these helper functions instead of helper methods, so we don't pollute
|
||||
`CKContainer`.
|
||||
*/
|
||||
private func verifyAccountStatus(container: CKContainer, permission: CKApplicationPermissions, shouldRequest: Bool, completion: @escaping (Error?) -> Void) {
|
||||
private func verifyAccountStatus(container: CKContainer, permission: CKContainer.ApplicationPermissions, shouldRequest: Bool, completion: @escaping (Error?) -> Void) {
|
||||
container.accountStatus { accountStatus, accountError in
|
||||
if accountStatus == .available {
|
||||
if permission != [] {
|
||||
|
|
@ -50,7 +50,7 @@ private func verifyAccountStatus(container: CKContainer, permission: CKApplicati
|
|||
}
|
||||
}
|
||||
|
||||
private func verifyPermission(container: CKContainer, permission: CKApplicationPermissions, shouldRequest: Bool, completion: @escaping (Error?) -> Void) {
|
||||
private func verifyPermission(container: CKContainer, permission: CKContainer.ApplicationPermissions, shouldRequest: Bool, completion: @escaping (Error?) -> Void) {
|
||||
container.status(forApplicationPermission: permission) { permissionStatus, permissionError in
|
||||
if permissionStatus == .granted {
|
||||
completion(nil)
|
||||
|
|
@ -65,7 +65,7 @@ private func verifyPermission(container: CKContainer, permission: CKApplicationP
|
|||
}
|
||||
}
|
||||
|
||||
private func requestPermission(container: CKContainer, permission: CKApplicationPermissions, completion: @escaping (Error?) -> Void) {
|
||||
private func requestPermission(container: CKContainer, permission: CKContainer.ApplicationPermissions, completion: @escaping (Error?) -> Void) {
|
||||
DispatchQueue.main.async {
|
||||
container.requestApplicationPermission(permission) { requestStatus, requestError in
|
||||
if requestStatus == .granted {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ struct CloudContainerCondition: OperationCondition {
|
|||
|
||||
let container: CKContainer // this is the container to which you need access.
|
||||
|
||||
let permission: CKApplicationPermissions
|
||||
let permission: CKContainer.ApplicationPermissions
|
||||
|
||||
/**
|
||||
- parameter container: the `CKContainer` to which you need access.
|
||||
|
|
@ -31,7 +31,7 @@ struct CloudContainerCondition: OperationCondition {
|
|||
container. This parameter has a default value of `[]`, which would get
|
||||
you anonymized read/write access.
|
||||
*/
|
||||
init(container: CKContainer, permission: CKApplicationPermissions = []) {
|
||||
init(container: CKContainer, permission: CKContainer.ApplicationPermissions = []) {
|
||||
self.container = container
|
||||
self.permission = permission
|
||||
}
|
||||
|
|
@ -64,9 +64,9 @@ struct CloudContainerCondition: OperationCondition {
|
|||
*/
|
||||
private class CloudKitPermissionOperation: EarthquakeOperation {
|
||||
let container: CKContainer
|
||||
let permission: CKApplicationPermissions
|
||||
let permission: CKContainer.ApplicationPermissions
|
||||
|
||||
init(container: CKContainer, permission: CKApplicationPermissions) {
|
||||
init(container: CKContainer, permission: CKContainer.ApplicationPermissions) {
|
||||
self.container = container
|
||||
self.permission = permission
|
||||
super.init()
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ struct LocationCondition: OperationCondition {
|
|||
|
||||
func evaluateForOperation(operation: EarthquakeOperation, completion: (OperationConditionResult) -> Void) {
|
||||
let enabled = CLLocationManager.locationServicesEnabled()
|
||||
let actual = CLLocationManager.authorizationStatus()
|
||||
let actual = CLLocationManager().authorizationStatus
|
||||
|
||||
var error: NSError?
|
||||
|
||||
|
|
@ -101,7 +101,7 @@ private class LocationPermissionOperation: EarthquakeOperation {
|
|||
Not only do we need to handle the "Not Determined" case, but we also
|
||||
need to handle the "upgrade" (.WhenInUse -> .Always) case.
|
||||
*/
|
||||
switch (CLLocationManager.authorizationStatus(), usage) {
|
||||
switch (CLLocationManager().authorizationStatus, usage) {
|
||||
case (.notDetermined, _), (.authorizedWhenInUse, .Always):
|
||||
DispatchQueue.main.async {
|
||||
self.requestPermission()
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ class SplitViewController: UISplitViewController {
|
|||
override func awakeFromNib() {
|
||||
super.awakeFromNib()
|
||||
|
||||
preferredDisplayMode = .allVisible
|
||||
preferredDisplayMode = .oneBesideSecondary
|
||||
|
||||
delegate = self
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue