Skip to content

Commit 33428c8

Browse files
committed
Managed objects aren't Sendable, but their keys are
1 parent 66c6cdd commit 33428c8

8 files changed

Lines changed: 11 additions & 13 deletions

File tree

App/View Controllers/Messages/MessageViewController.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,7 @@ final class MessageViewController: ViewController {
262262

263263
if message.seen == false {
264264
message.seen = true
265-
try await message.managedObjectContext?.perform {
266-
try message.managedObjectContext?.save()
267-
}
265+
try message.managedObjectContext?.save()
268266
}
269267
} catch {
270268
title = ""

AwfulCore/Sources/AwfulCore/Model/AwfulManagedObject.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
import CoreData
66

77
/// A slightly more convenient NSManagedObject for entities with a custom class.
8-
public class AwfulManagedObject: NSManagedObject, @unchecked Sendable {
8+
public class AwfulManagedObject: NSManagedObject {
99
public var objectKey: AwfulObjectKey {
1010
fatalError("subclass implementation please")
1111
}
1212
}
1313

1414
/// An object key uniquely identifies an AwfulManagedObject, but (unlike NSManagedObjectID) in an Awful-specific away.
15-
public class AwfulObjectKey: NSObject, NSCoding, NSCopying {
15+
public class AwfulObjectKey: NSObject, NSCoding, NSCopying, @unchecked Sendable {
1616
let entityName: String
1717
var keys: [String] {
1818
fatalError("subclass implementation please")

AwfulCore/Sources/AwfulCore/Model/Forum.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public class Forum: AwfulManagedObject, Managed {
3636
}
3737

3838
@objc(ForumKey)
39-
public final class ForumKey: AwfulObjectKey {
39+
public final class ForumKey: AwfulObjectKey, @unchecked Sendable {
4040
@objc let forumID: String
4141

4242
public init(forumID: String) {
@@ -99,7 +99,7 @@ public class ForumGroup: AwfulManagedObject, Managed {
9999
}
100100

101101
@objc(ForumGroupKey)
102-
public final class ForumGroupKey: AwfulObjectKey {
102+
public final class ForumGroupKey: AwfulObjectKey, @unchecked Sendable {
103103
let groupID: String
104104

105105
public init(groupID: String) {

AwfulCore/Sources/AwfulCore/Model/Post.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import CoreData
66

77
/// A single reply to a thread.
88
@objc(Post)
9-
public class Post: AwfulManagedObject, Managed, @unchecked Sendable {
9+
public class Post: AwfulManagedObject, Managed {
1010
public static var entityName: String { "Post" }
1111

1212
/// Whether the logged-in user can edit the post.
@@ -74,7 +74,7 @@ private func pageForIndex(index: Int32) -> Int {
7474
}
7575

7676
@objc(PostKey)
77-
public final class PostKey: AwfulObjectKey {
77+
public final class PostKey: AwfulObjectKey, @unchecked Sendable {
7878
@objc public let postID: String
7979

8080
public init(postID: String) {

AwfulCore/Sources/AwfulCore/Model/PrivateMessage.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ extension PrivateMessage {
5151
}
5252

5353
@objc(PrivateMessageKey)
54-
public final class PrivateMessageKey: AwfulObjectKey {
54+
public final class PrivateMessageKey: AwfulObjectKey, @unchecked Sendable {
5555
@objc public let messageID: String
5656

5757
public init(messageID: String) {

AwfulCore/Sources/AwfulCore/Model/Thread.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ extension AwfulThread {
142142
}
143143

144144
@objc(ThreadKey)
145-
public final class ThreadKey: AwfulObjectKey {
145+
public final class ThreadKey: AwfulObjectKey, @unchecked Sendable {
146146
@objc let threadID: String
147147

148148
public init(threadID: String) {

AwfulCore/Sources/AwfulCore/Model/ThreadTag.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ extension ThreadTag {
3434
}
3535

3636
@objc(ThreadTagKey)
37-
public final class ThreadTagKey: AwfulObjectKey {
37+
public final class ThreadTagKey: AwfulObjectKey, @unchecked Sendable {
3838
@objc public let imageName: String?
3939
@objc public let threadTagID: String?
4040

AwfulCore/Sources/AwfulCore/Model/User.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public func extractAvatarURL(fromCustomTitleHTML customTitleHTML: String) -> URL
5151
}
5252

5353
@objc(UserKey)
54-
public final class UserKey: AwfulObjectKey {
54+
public final class UserKey: AwfulObjectKey, @unchecked Sendable {
5555
@objc public let userID: String
5656
@objc let username: String?
5757

0 commit comments

Comments
 (0)