Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Swift Package for managing Core Data concurrency using actors, inspired by@fatbobman’s experimental work, with support for iOS 13+

License

NotificationsYou must be signed in to change notification settings

rnine/CoreDataModelActor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CoreDataModelActor is a Swift Package that extends and enhances the ideas presented byfatbobman in hisarticle and the associated experimental projectCoreDataEvolution. This package introduces support for older platforms (down to iOS 13) and provides two different executors to manage Core Data concurrency across various versions of Apple's operating systems.

Example Usage

Here’s an example of how to useCoreDataModelActor to manage Core Data operations with actors:

import Foundationimport CoreDataModelActorimport CoreDataModelActorMacros@NSModelActoractorDocumentsRepository{func toggleFavorite(objectID:NSManagedObjectID)asyncthrows{guardlet document=try modelContext.existingObject(with: objectID)as?Itemelse{return}        document.timestamp=.nowtry modelContext.save()}}

Or, if you don't want to use the macro:

import CoreDataimport CoreDataModelActoractorDocumentsRepository:NSModelActor{letmodelContainer:NSPersistentContainerletmodelExecutor:anyCoreDataModelActor.NSModelObjectContextExecutorinit(container:NSPersistentContainer){self.modelExecutor=NSModelObjectContextExecutorFactory.makeExecutor(context: container.newBackgroundContext())self.modelContainer= container}func toggleFavorite(objectID:NSManagedObjectID)asyncthrows{guardlet document=try modelContext.existingObject(with: objectID)as?Itemelse{return}        document.timestamp=.nowtry modelContext.save()}}

Minimum Supported Targets

  • macOS 10.15
  • iOS 13
  • tvOS 13
  • watchOS 6
  • Mac Catalyst 13

Credits

This project is inspired by and based on the experimental work done byfatbobman. You can find the original article and project at the following links:

About

Swift Package for managing Core Data concurrency using actors, inspired by@fatbobman’s experimental work, with support for iOS 13+

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp