Xcode 14, iOS 16 SDK (min iOS 13)

This commit is contained in:
John Estropia
2022-06-19 17:56:42 +09:00
parent 3317867a2f
commit d1f83badef
121 changed files with 217 additions and 235 deletions

View File

@@ -30,7 +30,6 @@ import Combine
// MARK: - ListPublisher: ObservableObject
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
extension CoreStoreObject: ObservableObject {
// MARK: ObservableObject

View File

@@ -425,7 +425,7 @@ extension DataStack {
operations.append(
BlockOperation { [weak self] in
guard let `self` = self, !cancelled else {
guard let self = self, !cancelled else {
return
}

View File

@@ -30,7 +30,6 @@ import Combine
// MARK: - DataStack
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
extension DataStack {
// MARK: Public
@@ -70,7 +69,6 @@ extension DataStack {
// MARK: - DataStack.ReactiveNamespace
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
extension DataStack.ReactiveNamespace {
// MARK: Public

View File

@@ -30,7 +30,6 @@ import CoreData
// MARK: - DataStack
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
extension DataStack {
// MARK: - AddStoragePublisher

View File

@@ -34,6 +34,11 @@ import CoreData
*/
public protocol DynamicObject: AnyObject {
/**
The object ID for this instance
*/
typealias ObjectID = NSManagedObjectID
/**
Used internally by CoreStore. Do not call directly.
*/
@@ -68,11 +73,6 @@ public protocol DynamicObject: AnyObject {
extension DynamicObject {
// MARK: Internal
/**
The object ID for this instance
*/
public typealias ObjectID = NSManagedObjectID
internal func runtimeType() -> Self.Type {

View File

@@ -33,7 +33,6 @@ import CoreData
// MARK: - EnvironmentValues
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
extension EnvironmentValues {
// MARK: Public
@@ -60,7 +59,6 @@ extension EnvironmentValues {
// MARK: - DataStackEnvironmentKey
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
fileprivate struct DataStackKey: EnvironmentKey {
// MARK: FilePrivate

View File

@@ -54,14 +54,7 @@ extension FieldCoders {
internal static var transformerName: NSValueTransformerName {
if #available(iOS 12.0, tvOS 12.0, watchOS 5.0, macOS 10.14, *) {
return .secureUnarchiveFromDataTransformerName
}
else {
return .keyedUnarchiveFromDataTransformerName
}
return .secureUnarchiveFromDataTransformerName
}
}
}

View File

@@ -31,7 +31,6 @@ import SwiftUI
// MARK: - ForEach
@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
extension ForEach where Content: View {
// MARK: Public

View File

@@ -74,45 +74,21 @@ extension Internals {
internal func register() {
let transformerName = self.transformerName
if #available(iOS 12.0, tvOS 12.0, watchOS 5.0, macOS 10.14, *) {
switch self.transformerName {
switch transformerName {
case .secureUnarchiveFromDataTransformerName,
.isNotNilTransformerName,
.isNilTransformerName,
.negateBooleanTransformerName:
return
case .secureUnarchiveFromDataTransformerName,
.isNotNilTransformerName,
.isNilTransformerName,
.negateBooleanTransformerName:
return
case let transformerName:
Self.cachedCoders[transformerName] = self
case let transformerName:
Self.cachedCoders[transformerName] = self
Foundation.ValueTransformer.setValueTransformer(
self.transformer,
forName: transformerName
)
}
}
else {
switch transformerName {
case .keyedUnarchiveFromDataTransformerName,
.unarchiveFromDataTransformerName,
.isNotNilTransformerName,
.isNilTransformerName,
.negateBooleanTransformerName:
return
case let transformerName:
Self.cachedCoders[transformerName] = self
Foundation.ValueTransformer.setValueTransformer(
self.transformer,
forName: transformerName
)
}
Foundation.ValueTransformer.setValueTransformer(
self.transformer,
forName: transformerName
)
}
}

View File

@@ -812,7 +812,7 @@ public final class ListMonitor<O: DynamicObject>: Hashable {
object: self,
closure: { [weak self] (note) -> Void in
guard let `self` = self else {
guard let self = self else {
return
}
@@ -841,7 +841,7 @@ public final class ListMonitor<O: DynamicObject>: Hashable {
object: self,
closure: { [weak self] (note) -> Void in
guard let `self` = self,
guard let self = self,
let userInfo = note.userInfo,
let rawObject = userInfo[String(describing: NSManagedObject.self)] as? NSManagedObject else {
@@ -877,7 +877,7 @@ public final class ListMonitor<O: DynamicObject>: Hashable {
object: self,
closure: { [weak self] (note) -> Void in
guard let `self` = self,
guard let self = self,
let userInfo = note.userInfo,
let sectionInfo = userInfo[String(describing: NSFetchedResultsSectionInfo.self)] as? NSFetchedResultsSectionInfo,
let sectionIndex = (userInfo[String(describing: NSNumber.self)] as? NSNumber)?.intValue else {
@@ -1148,7 +1148,7 @@ public final class ListMonitor<O: DynamicObject>: Hashable {
self.taskGroup.notify(queue: .main) { [weak self] () -> Void in
guard let `self` = self else {
guard let self = self else {
return
}
@@ -1164,7 +1164,7 @@ public final class ListMonitor<O: DynamicObject>: Hashable {
self.transactionQueue.async { [weak self] in
guard let `self` = self else {
guard let self = self else {
return
}
@@ -1183,7 +1183,7 @@ public final class ListMonitor<O: DynamicObject>: Hashable {
}
newFetchedResultsControllerDelegate.taskGroup.notify(queue: .main) { [weak self] () -> Void in
guard let `self` = self else {
guard let self = self else {
return
}
@@ -1338,7 +1338,7 @@ public final class ListMonitor<O: DynamicObject>: Hashable {
queue: OperationQueue.main,
closure: { [weak self] (note) -> Void in
guard let `self` = self else {
guard let self = self else {
return
}
@@ -1360,7 +1360,7 @@ public final class ListMonitor<O: DynamicObject>: Hashable {
queue: OperationQueue.main,
closure: { [weak self] (note) -> Void in
guard let `self` = self else {
guard let self = self else {
return
}

View File

@@ -30,7 +30,6 @@ import Combine
// MARK: - ListPublisher
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
extension ListPublisher {
// MARK: Public
@@ -71,7 +70,6 @@ extension ListPublisher {
// MARK: - ListPublisher.ReactiveNamespace
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
extension ListPublisher.ReactiveNamespace {
// MARK: Public

View File

@@ -30,7 +30,6 @@ import CoreData
// MARK: - ListPublisher
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
extension ListPublisher {
// MARK: - SnapshotPublisher

View File

@@ -34,7 +34,6 @@ import SwiftUI
/**
A container view that reads list changes in a `ListPublisher`
*/
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
public struct ListReader<Object: DynamicObject, Content: View, Value>: View {
// MARK: Internal

View File

@@ -35,7 +35,6 @@ import SwiftUI
A property wrapper type that can read `ListPublisher` changes.
*/
@propertyWrapper
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
public struct ListState<Object: DynamicObject>: DynamicProperty {
// MARK: Public

View File

@@ -108,7 +108,7 @@ extension NSManagedObjectContext {
@nonobjc
internal func objectsDidChangeObserver<U: AnyObject>(for observer: U) -> Internals.SharedNotificationObserver<(updated: Set<NSManagedObjectID>, deleted: Set<NSManagedObjectID>)> {
return self.userInfo(for: .objectsChangeObserver(U.self)) { [unowned self] in
return self.userInfo(for: .objectsChangeObserver(U.self)) {
return .init(
notificationName: .NSManagedObjectContextObjectsDidChange,
@@ -175,7 +175,7 @@ extension NSManagedObjectContext {
}
}
private func userInfo<T>(for key: UserInfoKeys, initialize: @escaping () -> T) -> T {
private func userInfo<T>(for key: UserInfoKeys, initialize: () -> T) -> T {
let keyString = key.keyString
if let value = self.userInfo[keyString] as? T {

View File

@@ -299,7 +299,7 @@ public final class ObjectMonitor<O: DynamicObject>: Hashable, ObjectRepresentati
toObserver: observer,
callback: { [weak self, weak observer] (monitor, object) -> Void in
guard let `self` = self, let observer = observer else {
guard let self = self, let observer = observer else {
return
}
@@ -370,7 +370,7 @@ public final class ObjectMonitor<O: DynamicObject>: Hashable, ObjectRepresentati
object: self,
closure: { [weak self] _ in
guard let `self` = self else {
guard let self = self else {
return
}
@@ -395,7 +395,7 @@ public final class ObjectMonitor<O: DynamicObject>: Hashable, ObjectRepresentati
object: self,
closure: { [weak self] (note) in
guard let `self` = self,
guard let self = self,
let userInfo = note.userInfo,
let object = userInfo[String(describing: NSManagedObject.self)] as! NSManagedObject? else {

View File

@@ -31,7 +31,6 @@ import CoreData
// MARK: - ObjectPublisher
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
extension ObjectPublisher {
// MARK: Public
@@ -73,7 +72,6 @@ extension ObjectPublisher {
// MARK: - ObjectPublisher.ReactiveNamespace
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
extension ObjectPublisher.ReactiveNamespace {
// MARK: Public
@@ -108,7 +106,6 @@ extension ObjectPublisher.ReactiveNamespace {
// MARK: - ObjectPublisher.ReactiveNamespace where O: NSManagedObject
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
extension ObjectPublisher.ReactiveNamespace where O: NSManagedObject {
/**
@@ -125,7 +122,6 @@ extension ObjectPublisher.ReactiveNamespace where O: NSManagedObject {
// MARK: - ObjectPublisher.ReactiveNamespace where O: CoreStoreObject
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
extension ObjectPublisher.ReactiveNamespace where O: CoreStoreObject {
/**

View File

@@ -30,7 +30,6 @@ import CoreData
// MARK: - ObjectPublisher
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
extension ObjectPublisher {
// MARK: - SnapshotPublisher

View File

@@ -34,7 +34,6 @@ import SwiftUI
/**
A container view that reads changes to an `ObjectPublisher`
*/
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
public struct ObjectReader<Object: DynamicObject, Content: View, Placeholder: View, Value>: View {
// MARK: Internal

View File

@@ -35,7 +35,6 @@ import SwiftUI
A property wrapper type that can read `ObjectPublisher` changes.
*/
@propertyWrapper
@available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
public struct ObjectState<O: DynamicObject>: DynamicProperty {
// MARK: Public

View File

@@ -183,14 +183,37 @@ public struct Where<O: DynamicObject>: WhereClauseType, FetchClause, QueryClause
*/
public init<V: FieldStorableType>(_ keyPath: KeyPathString, isEqualTo value: V) {
var nilPredicate: NSPredicate {
return NSPredicate(
format: "\(keyPath) == nil"
)
}
var valuePredicate: NSPredicate {
return NSPredicate(
format: "\(keyPath) == %@",
argumentArray: [value.cs_toFieldStoredNativeType() as Any]
)
}
switch value {
case let optionalValue as any FieldOptionalType:
switch optionalValue.cs_wrappedValue {
case nil,
is NSNull:
self.init(nilPredicate)
case _?:
self.init(valuePredicate)
}
case nil,
is NSNull:
self.init(NSPredicate(format: "\(keyPath) == nil"))
case is NSNull:
self.init(nilPredicate)
case let value:
self.init(NSPredicate(format: "\(keyPath) == %@", argumentArray: [value.cs_toFieldStoredNativeType() as Any]))
case _:
self.init(valuePredicate)
}
}