Post

Replies

Boosts

Views

Activity

Core Data, Swift 6, Concurrency and more
I have the following struct doing some simple tasks, running a network request and then saving items to Core Data. Per Xcode 26's new default settings (onisolated(nonsending) & defaultIsolation set to MainActor), the struct and its functions run on the main actor, which works fine and I can even safely omit the context.perform call because of it, which is great. struct DataHandler { func importGames(withIDs ids: [Int]) async throws { ... let context = PersistenceController.shared.container.viewContext for game in games { let newGame = GYGame(context: context) newGame.id = UUID() } try context.save() } } Now, I want to run this in a background thread to increase performance and responsiveness. So I followed this session (https://developer.apple.com/videos/play/wwdc2025/270) and believe the solution is to mark the struct as nonisolated and the function itself as @concurrent. The function now works on a background thread, but I receive a crash: _dispatch_assert_queue_fail. This happens whether I wrap the Core Data calls with context.perform or not. Alongside that I get a few new warnings which I have no idea how to work around. So, what am I doing wrong here? What's the correct way to solve this simple use case with Swift 6's new concurrency stuff and the default main actor isolation in Xcode 26? Curiously enough, when setting onisolated(nonsending) to false & defaultIsolation to non isolating, mimicking the previous behavior, the function works without crashing. nonisolated struct DataHandler { @concurrent func importGames(withIDs ids: [Int]) async throws { ... let context = await PersistenceController.shared.container.newBackgroundContext() for game in games { let newGame = GYGame(context: context) newGame.id = UUID() // Main actor-isolated property 'id' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode } try context.save() } }
2
0
313
Jun ’25
Stickers broken on iOS 18 / iPhone 16 after restoring from backup
[Detailed feedback FB15232205] Since I restored my new iPhone 16 Pro from a previous iPhone 15 Pro backup, I can't use stickers any more. The stickers gallery is filled with clear stickers that I can't interact with. Deleting does nothing. I also can't add new stickers. They appear for a second and then disappear again. iCloud sync is also not working. Other devices are fine. When restoring the phone without backup, everything works fine. Is it possible this is caused by the iOS 18.0 version that's shipping with the new iPhones? I was only offered another iOS 18.0 update in Settings later on. Updating to 18.1 beta 5 today did not fix it either. From what I gather from the logs, there's a database corruption happening. I've seen various posts across the internet who have this issue specifically after setting up their new iPhone. fehler 22:08:24.677501+0200 stickersd error: (11) Fatal error. The database at /private/var/mobile/Library/Stickers/stickers.stickerdb is corrupted. SQLite error code:11, 'database disk image is malformed' fehler 22:08:24.677615+0200 stickersd error: exception fetching row for object with ID: Fatal error. The database at /private/var/mobile/Library/Stickers/stickers.stickerdb is corrupted. SQLite error code:11, 'database disk image is malformed' with userInfo of { NSFilePath = "/private/var/mobile/Library/Stickers/stickers.stickerdb"; NSSQLiteErrorDomain = 11; } fehler 22:08:24.677679+0200 stickersd error: Unhandled error occurred during faulting: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11} ({ NSFilePath = "/private/var/mobile/Library/Stickers/stickers.stickerdb"; NSSQLiteErrorDomain = 11; }) fehler 22:08:24.677700+0200 stickersd fault: Unhandled error (NSSQLiteErrorDomain, 11) occurred during faulting and was ignored: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11} problem 22:08:24.677736+0200 stickersd CoreData: Unhandled error (NSSQLiteErrorDomain, 11) occurred during faulting and was ignored: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11} fehler 22:08:24.678107+0200 stickersd database corruption at line 79182 of [1b37c146ee] fehler 22:08:24.678757+0200 stickersd error: (11) Fatal error. The database at /private/var/mobile/Library/Stickers/stickers.stickerdb is corrupted. SQLite error code:11, 'database disk image is malformed' fehler 22:08:24.678783+0200 stickersd error: exception fetching row for object with ID: Fatal error. The database at /private/var/mobile/Library/Stickers/stickers.stickerdb is corrupted. SQLite error code:11, 'database disk image is malformed' with userInfo of { NSFilePath = "/private/var/mobile/Library/Stickers/stickers.stickerdb"; NSSQLiteErrorDomain = 11; } fehler 22:08:24.678807+0200 stickersd error: Unhandled error occurred during faulting: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11} ({ NSFilePath = "/private/var/mobile/Library/Stickers/stickers.stickerdb"; NSSQLiteErrorDomain = 11; }) fehler 22:08:24.678826+0200 stickersd fault: Unhandled error (NSSQLiteErrorDomain, 11) occurred during faulting and was ignored: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11} problem 22:08:24.678858+0200 stickersd CoreData: Unhandled error (NSSQLiteErrorDomain, 11) occurred during faulting and was ignored: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11} fehler 22:08:24.678878+0200 stickersd database corruption at line 79182 of [1b37c146ee] fehler 22:08:24.678903+0200 stickersd error: (11) Fatal error. The database at /private/var/mobile/Library/Stickers/stickers.stickerdb is corrupted. SQLite error code:11, 'database disk image is malformed' fehler 22:08:24.678931+0200 stickersd error: exception fetching row for object with ID: Fatal error. The database at /private/var/mobile/Library/Stickers/stickers.stickerdb is corrupted. SQLite error code:11, 'database disk image is malformed' with userInfo of { NSFilePath = "/private/var/mobile/Library/Stickers/stickers.stickerdb"; NSSQLiteErrorDomain = 11; } fehler 22:08:24.678953+0200 stickersd error: Unhandled error occurred during faulting: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11} ({ NSFilePath = "/private/var/mobile/Library/Stickers/stickers.stickerdb"; NSSQLiteErrorDomain = 11; }) fehler 22:08:24.678972+0200 stickersd fault: Unhandled error (NSSQLiteErrorDomain, 11) occurred during faulting and was ignored: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11}
12
9
5.9k
Oct ’24
Disable automatic iCloud sync with SwiftData
Is there a way to use SwiftData without automatic iCloud sync? I’d like to do that manually using my own CloudKit solution or CKSyncEngine. SwiftData automatically picks up any CloudKit containers though and I have not seen an option to disable this behavior. Setting cloudKitContainerIdentifier to nil does still pick the first available CloudKit container. Just in case this is a bug: FB12276416 Sample: let configuration = ModelConfiguration(cloudKitContainerIdentifier: nil) let modelContainer = try! ModelContainer(for: [GamesCollection.self], configuration) print(modelContainer.configurations) // [SwiftData.ModelConfiguration(url: …, name: …, sharedAppContainerIdentifier: …, cloudKitContainerIdentifier: Optional("iCloud.CloudKit.com.+++")
14
4
5.0k
Mar ’24
Core Data, Swift 6, Concurrency and more
I have the following struct doing some simple tasks, running a network request and then saving items to Core Data. Per Xcode 26's new default settings (onisolated(nonsending) & defaultIsolation set to MainActor), the struct and its functions run on the main actor, which works fine and I can even safely omit the context.perform call because of it, which is great. struct DataHandler { func importGames(withIDs ids: [Int]) async throws { ... let context = PersistenceController.shared.container.viewContext for game in games { let newGame = GYGame(context: context) newGame.id = UUID() } try context.save() } } Now, I want to run this in a background thread to increase performance and responsiveness. So I followed this session (https://developer.apple.com/videos/play/wwdc2025/270) and believe the solution is to mark the struct as nonisolated and the function itself as @concurrent. The function now works on a background thread, but I receive a crash: _dispatch_assert_queue_fail. This happens whether I wrap the Core Data calls with context.perform or not. Alongside that I get a few new warnings which I have no idea how to work around. So, what am I doing wrong here? What's the correct way to solve this simple use case with Swift 6's new concurrency stuff and the default main actor isolation in Xcode 26? Curiously enough, when setting onisolated(nonsending) to false & defaultIsolation to non isolating, mimicking the previous behavior, the function works without crashing. nonisolated struct DataHandler { @concurrent func importGames(withIDs ids: [Int]) async throws { ... let context = await PersistenceController.shared.container.newBackgroundContext() for game in games { let newGame = GYGame(context: context) newGame.id = UUID() // Main actor-isolated property 'id' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode } try context.save() } }
Replies
2
Boosts
0
Views
313
Activity
Jun ’25
Stickers broken on iOS 18 / iPhone 16 after restoring from backup
[Detailed feedback FB15232205] Since I restored my new iPhone 16 Pro from a previous iPhone 15 Pro backup, I can't use stickers any more. The stickers gallery is filled with clear stickers that I can't interact with. Deleting does nothing. I also can't add new stickers. They appear for a second and then disappear again. iCloud sync is also not working. Other devices are fine. When restoring the phone without backup, everything works fine. Is it possible this is caused by the iOS 18.0 version that's shipping with the new iPhones? I was only offered another iOS 18.0 update in Settings later on. Updating to 18.1 beta 5 today did not fix it either. From what I gather from the logs, there's a database corruption happening. I've seen various posts across the internet who have this issue specifically after setting up their new iPhone. fehler 22:08:24.677501+0200 stickersd error: (11) Fatal error. The database at /private/var/mobile/Library/Stickers/stickers.stickerdb is corrupted. SQLite error code:11, 'database disk image is malformed' fehler 22:08:24.677615+0200 stickersd error: exception fetching row for object with ID: Fatal error. The database at /private/var/mobile/Library/Stickers/stickers.stickerdb is corrupted. SQLite error code:11, 'database disk image is malformed' with userInfo of { NSFilePath = "/private/var/mobile/Library/Stickers/stickers.stickerdb"; NSSQLiteErrorDomain = 11; } fehler 22:08:24.677679+0200 stickersd error: Unhandled error occurred during faulting: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11} ({ NSFilePath = "/private/var/mobile/Library/Stickers/stickers.stickerdb"; NSSQLiteErrorDomain = 11; }) fehler 22:08:24.677700+0200 stickersd fault: Unhandled error (NSSQLiteErrorDomain, 11) occurred during faulting and was ignored: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11} problem 22:08:24.677736+0200 stickersd CoreData: Unhandled error (NSSQLiteErrorDomain, 11) occurred during faulting and was ignored: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11} fehler 22:08:24.678107+0200 stickersd database corruption at line 79182 of [1b37c146ee] fehler 22:08:24.678757+0200 stickersd error: (11) Fatal error. The database at /private/var/mobile/Library/Stickers/stickers.stickerdb is corrupted. SQLite error code:11, 'database disk image is malformed' fehler 22:08:24.678783+0200 stickersd error: exception fetching row for object with ID: Fatal error. The database at /private/var/mobile/Library/Stickers/stickers.stickerdb is corrupted. SQLite error code:11, 'database disk image is malformed' with userInfo of { NSFilePath = "/private/var/mobile/Library/Stickers/stickers.stickerdb"; NSSQLiteErrorDomain = 11; } fehler 22:08:24.678807+0200 stickersd error: Unhandled error occurred during faulting: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11} ({ NSFilePath = "/private/var/mobile/Library/Stickers/stickers.stickerdb"; NSSQLiteErrorDomain = 11; }) fehler 22:08:24.678826+0200 stickersd fault: Unhandled error (NSSQLiteErrorDomain, 11) occurred during faulting and was ignored: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11} problem 22:08:24.678858+0200 stickersd CoreData: Unhandled error (NSSQLiteErrorDomain, 11) occurred during faulting and was ignored: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11} fehler 22:08:24.678878+0200 stickersd database corruption at line 79182 of [1b37c146ee] fehler 22:08:24.678903+0200 stickersd error: (11) Fatal error. The database at /private/var/mobile/Library/Stickers/stickers.stickerdb is corrupted. SQLite error code:11, 'database disk image is malformed' fehler 22:08:24.678931+0200 stickersd error: exception fetching row for object with ID: Fatal error. The database at /private/var/mobile/Library/Stickers/stickers.stickerdb is corrupted. SQLite error code:11, 'database disk image is malformed' with userInfo of { NSFilePath = "/private/var/mobile/Library/Stickers/stickers.stickerdb"; NSSQLiteErrorDomain = 11; } fehler 22:08:24.678953+0200 stickersd error: Unhandled error occurred during faulting: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11} ({ NSFilePath = "/private/var/mobile/Library/Stickers/stickers.stickerdb"; NSSQLiteErrorDomain = 11; }) fehler 22:08:24.678972+0200 stickersd fault: Unhandled error (NSSQLiteErrorDomain, 11) occurred during faulting and was ignored: Error Domain=NSSQLiteErrorDomain Code=11 "(null)" UserInfo={NSFilePath=/private/var/mobile/Library/Stickers/stickers.stickerdb, NSSQLiteErrorDomain=11}
Replies
12
Boosts
9
Views
5.9k
Activity
Oct ’24
Disable automatic iCloud sync with SwiftData
Is there a way to use SwiftData without automatic iCloud sync? I’d like to do that manually using my own CloudKit solution or CKSyncEngine. SwiftData automatically picks up any CloudKit containers though and I have not seen an option to disable this behavior. Setting cloudKitContainerIdentifier to nil does still pick the first available CloudKit container. Just in case this is a bug: FB12276416 Sample: let configuration = ModelConfiguration(cloudKitContainerIdentifier: nil) let modelContainer = try! ModelContainer(for: [GamesCollection.self], configuration) print(modelContainer.configurations) // [SwiftData.ModelConfiguration(url: …, name: …, sharedAppContainerIdentifier: …, cloudKitContainerIdentifier: Optional("iCloud.CloudKit.com.+++")
Replies
14
Boosts
4
Views
5.0k
Activity
Mar ’24
New NSSearchToolbarItem in Mac Catalyst
What's the recommended way to add a search bar in Mac Catalyst? The new NSSearchToolbarItem that was introduced in macOS 11 is not available in Catalyst. What's the alternative? FB7828248
Replies
2
Boosts
0
Views
1.4k
Activity
Aug ’22