mirror of
https://github.com/samsonjs/Advanced-NSOperations.git
synced 2026-04-27 14:57:37 +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 = {
|
551B9BDC1AEB1C9700302388 = {
|
||||||
CreatedOnToolsVersion = 6.3;
|
CreatedOnToolsVersion = 6.3;
|
||||||
DevelopmentTeam = X45WPY5JFZ;
|
DevelopmentTeam = X45WPY5JFZ;
|
||||||
|
LastSwiftMigration = 1320;
|
||||||
SystemCapabilities = {
|
SystemCapabilities = {
|
||||||
com.apple.iCloud = {
|
com.apple.iCloud = {
|
||||||
enabled = 1;
|
enabled = 1;
|
||||||
|
|
@ -581,7 +582,7 @@
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "net.samhuri.apple-samplecode.Earthquakes";
|
PRODUCT_BUNDLE_IDENTIFIER = "net.samhuri.apple-samplecode.Earthquakes";
|
||||||
PRODUCT_NAME = Earthquakes;
|
PRODUCT_NAME = Earthquakes;
|
||||||
PROVISIONING_PROFILE = "";
|
PROVISIONING_PROFILE = "";
|
||||||
SWIFT_VERSION = 4.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
|
|
@ -599,7 +600,7 @@
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "net.samhuri.apple-samplecode.Earthquakes";
|
PRODUCT_BUNDLE_IDENTIFIER = "net.samhuri.apple-samplecode.Earthquakes";
|
||||||
PRODUCT_NAME = Earthquakes;
|
PRODUCT_NAME = Earthquakes;
|
||||||
PROVISIONING_PROFILE = "";
|
PROVISIONING_PROFILE = "";
|
||||||
SWIFT_VERSION = 4.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ class AlertOperation: EarthquakeOperation {
|
||||||
addCondition(condition: MutuallyExclusive<UIViewController>())
|
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
|
let action = UIAlertAction(title: title, style: style) { [weak self] _ in
|
||||||
if let strongSelf = self {
|
if let strongSelf = self {
|
||||||
handler(strongSelf)
|
handler(strongSelf)
|
||||||
|
|
|
||||||
|
|
@ -18,16 +18,16 @@ import UIKit
|
||||||
class BackgroundObserver: NSObject, OperationObserver {
|
class BackgroundObserver: NSObject, OperationObserver {
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
private var identifier = UIBackgroundTaskInvalid
|
private var identifier = UIBackgroundTaskIdentifier.invalid
|
||||||
private var isInBackground = false
|
private var isInBackground = false
|
||||||
|
|
||||||
override init() {
|
override init() {
|
||||||
super.init()
|
super.init()
|
||||||
|
|
||||||
// We need to know when the application moves to/from the background.
|
// 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
|
isInBackground = UIApplication.shared.applicationState == .background
|
||||||
|
|
||||||
|
|
@ -56,7 +56,7 @@ class BackgroundObserver: NSObject, OperationObserver {
|
||||||
}
|
}
|
||||||
|
|
||||||
private func startBackgroundTask() {
|
private func startBackgroundTask() {
|
||||||
if identifier == UIBackgroundTaskInvalid {
|
if identifier == UIBackgroundTaskIdentifier.invalid {
|
||||||
identifier = UIApplication.shared.beginBackgroundTask(withName: "BackgroundObserver", expirationHandler: {
|
identifier = UIApplication.shared.beginBackgroundTask(withName: "BackgroundObserver", expirationHandler: {
|
||||||
self.endBackgroundTask()
|
self.endBackgroundTask()
|
||||||
})
|
})
|
||||||
|
|
@ -64,9 +64,9 @@ class BackgroundObserver: NSObject, OperationObserver {
|
||||||
}
|
}
|
||||||
|
|
||||||
private func endBackgroundTask() {
|
private func endBackgroundTask() {
|
||||||
if identifier != UIBackgroundTaskInvalid {
|
if identifier != UIBackgroundTaskIdentifier.invalid {
|
||||||
UIApplication.shared.endBackgroundTask(identifier)
|
UIApplication.shared.endBackgroundTask(convertToUIBackgroundTaskIdentifier(identifier.rawValue))
|
||||||
identifier = UIBackgroundTaskInvalid
|
identifier = UIBackgroundTaskIdentifier.invalid
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -80,3 +80,8 @@ class BackgroundObserver: NSObject, OperationObserver {
|
||||||
endBackgroundTask()
|
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
|
operation fails. If the verification was successful, this value will
|
||||||
be `nil`.
|
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)
|
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
|
Make these helper functions instead of helper methods, so we don't pollute
|
||||||
`CKContainer`.
|
`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
|
container.accountStatus { accountStatus, accountError in
|
||||||
if accountStatus == .available {
|
if accountStatus == .available {
|
||||||
if permission != [] {
|
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
|
container.status(forApplicationPermission: permission) { permissionStatus, permissionError in
|
||||||
if permissionStatus == .granted {
|
if permissionStatus == .granted {
|
||||||
completion(nil)
|
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 {
|
DispatchQueue.main.async {
|
||||||
container.requestApplicationPermission(permission) { requestStatus, requestError in
|
container.requestApplicationPermission(permission) { requestStatus, requestError in
|
||||||
if requestStatus == .granted {
|
if requestStatus == .granted {
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ struct CloudContainerCondition: OperationCondition {
|
||||||
|
|
||||||
let container: CKContainer // this is the container to which you need access.
|
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.
|
- 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
|
container. This parameter has a default value of `[]`, which would get
|
||||||
you anonymized read/write access.
|
you anonymized read/write access.
|
||||||
*/
|
*/
|
||||||
init(container: CKContainer, permission: CKApplicationPermissions = []) {
|
init(container: CKContainer, permission: CKContainer.ApplicationPermissions = []) {
|
||||||
self.container = container
|
self.container = container
|
||||||
self.permission = permission
|
self.permission = permission
|
||||||
}
|
}
|
||||||
|
|
@ -64,9 +64,9 @@ struct CloudContainerCondition: OperationCondition {
|
||||||
*/
|
*/
|
||||||
private class CloudKitPermissionOperation: EarthquakeOperation {
|
private class CloudKitPermissionOperation: EarthquakeOperation {
|
||||||
let container: CKContainer
|
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.container = container
|
||||||
self.permission = permission
|
self.permission = permission
|
||||||
super.init()
|
super.init()
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ struct LocationCondition: OperationCondition {
|
||||||
|
|
||||||
func evaluateForOperation(operation: EarthquakeOperation, completion: (OperationConditionResult) -> Void) {
|
func evaluateForOperation(operation: EarthquakeOperation, completion: (OperationConditionResult) -> Void) {
|
||||||
let enabled = CLLocationManager.locationServicesEnabled()
|
let enabled = CLLocationManager.locationServicesEnabled()
|
||||||
let actual = CLLocationManager.authorizationStatus()
|
let actual = CLLocationManager().authorizationStatus
|
||||||
|
|
||||||
var error: NSError?
|
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
|
Not only do we need to handle the "Not Determined" case, but we also
|
||||||
need to handle the "upgrade" (.WhenInUse -> .Always) case.
|
need to handle the "upgrade" (.WhenInUse -> .Always) case.
|
||||||
*/
|
*/
|
||||||
switch (CLLocationManager.authorizationStatus(), usage) {
|
switch (CLLocationManager().authorizationStatus, usage) {
|
||||||
case (.notDetermined, _), (.authorizedWhenInUse, .Always):
|
case (.notDetermined, _), (.authorizedWhenInUse, .Always):
|
||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
self.requestPermission()
|
self.requestPermission()
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ class SplitViewController: UISplitViewController {
|
||||||
override func awakeFromNib() {
|
override func awakeFromNib() {
|
||||||
super.awakeFromNib()
|
super.awakeFromNib()
|
||||||
|
|
||||||
preferredDisplayMode = .allVisible
|
preferredDisplayMode = .oneBesideSecondary
|
||||||
|
|
||||||
delegate = self
|
delegate = self
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue