ããã¯ã³ã¢ããŒã¿ã®3éšäœã®2çªç®ã®ããŒãã§ããæåã®ããŒãã¯ãã³ã¢
ããŒã¿+æå°ã®SwiftïŒæå°èŠä»¶ïŒããŒã1ïŒããå
¥æã§ããŸãã
æåã®éšåã§ã¯ãã³ã¢ããŒã¿ãã¡ã€ã³ã³ã³ããŒãã³ãïŒNSManagedObjectModelãNSPersistentStoreCoordinatorãNSManagedObjectContextïŒãããŒã¿ã¢ãã«ãšãã£ã¿ãŒã«é¢ããäžè¬çãªæ
å ±ãç¥ããããŒã¿ã¢ãã«ãäœæããŸããã
ãã®ããŒãã§ã¯ããªããžã§ã¯ããæäœããNSEntityDescriptionããã³NSManagedObjectã«ç²Ÿéããã¯ã©ã¹ãèªåçæããã³ã¢ããŒã¿ã®äœ¿ããããã倧å¹
ã«åäžããããã«ããŒã¯ã©ã¹ãäœæããŸãã
NSEntityDescriptionããã³NSManagedObject
NSEntityDescriptionããå§ããŸããããååããæšæž¬ã§ããããã«ãããã¯æ¬è³ªã®èª¬æãå«ããªããžã§ã¯ãã§ãã ããŒã¿ã¢ãã«ãšãã£ã¿ãŒã®ãšã³ãã£ãã£ã§ç©ºæ³ãããã¹ãŠã®ãã®ïŒå±æ§ãé¢ä¿ãåé€ã«ãŒã«ãªã©ïŒã¯ããã®ãªããžã§ã¯ãã«å«ãŸããŠããŸãã ããã䜿ã£ãŠè¡ãå¯äžã®ããšã¯ããããåãåãããã©ã¡ãŒã¿ãŒãšããŠã©ããã«æž¡ãããšã§ãã
NSManagedObjectã¯ã管ç察象ãšã³ãã£ãã£èªäœã
ã€ãŸããšã³ãã£ãã£ã€ã³ã¹ã¿ã³ã¹ã§ãã DBMSïŒåã®èšäºã§éå§ïŒãšã®é¡æšãç¶ãããšãNSManagedObjectã¯ããŒã¿ããŒã¹ããŒãã«ã®ã¬ã³ãŒãïŒè¡ïŒã§ãããšèšããŸãã
ãããæ±ãæ¹æ³ãçè§£ããããã«ãæ°ãã顧客ãäœæããŸãããã æ¢è£œã®ã€ã³ã¿ãŒãã§ãŒã¹ã¯ãŸã ãªãã®ã§ïŒããã«ã€ããŠã¯æ¬¡ã®èšäºã§æ±ããŸãïŒãã¢ããªã±ãŒã·ã§ã³ããªã²ãŒãã¢ãžã¥ãŒã«ïŒ
AppDelegate.swift
ïŒã§çŽæ¥ããã°ã©ãã³ã°ããŠã¿ãŸãããã å¿é
ããªãã§ãã ãããããã¯çè§£ã®ããã«éèŠãªãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã«ãããŸãããå°ãåŸã§ããããããã¹ãŠãå¥ã®å Žæã«ç§»ããŸãã æ¬¡ã®é¢æ°ã®æäœã瀺ãããã«äœ¿çšããŸãã
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
管ç察象ãªããžã§ã¯ãïŒãã®å Žåã¯é¡§å®¢ïŒã®äœæã¯ã次ã®ããã«å®è¡ãããŸãã
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
ãŸãããšã³ãã£ãã£ã®èª¬æïŒ
entityDescription ïŒãååŸããå¿
èŠãªãšã³ãã£ãã£ã®ååãšå¯Ÿå¿ããã³ã³ã¹ãã©ã¯ã¿ãžã®ã³ã³ããã¹ããžã®ãªã³ã¯ãå«ãæååãæž¡ããŸãã ä»çµã¿ïŒæåã®éšåããæãåºããããã«ã管ç察象ãªããžã§ã¯ãã®ã³ã³ããã¹ãã¯æ°žç¶ã¹ãã¬ãŒãžã®ã³ãŒãã£ããŒã¿ãŒã«æ¥ç¶ãããã³ãŒãã£ããŒã¿ãŒã¯æå®ãããååã§ãšã³ãã£ãã£ãæ€çŽ¢ãããããŒã¿ãªããžã§ã¯ãã¢ãã«ã«æ¥ç¶ãããŸãã ãã®é¢æ°ã¯ãªãã·ã§ã³ã®å€ãè¿ãããšã«æ³šæããŠãã ããã
次ã«ãååŸãããšã³ãã£ãã£ã®èª¬æã«åºã¥ããŠã管ç察象ãªããžã§ã¯ãèªäœïŒ
managedObject ïŒãäœæããŸãã 2çªç®ã®ãã©ã¡ãŒã¿ãŒã¯ããã®ãªããžã§ã¯ããäœæããã³ã³ããã¹ããæž¡ããŸãïŒäžè¬çãªå ŽåãèŠããŠããããã«ãããã€ãã®ã³ã³ããã¹ããããå ŽåããããŸãïŒã
ããŠããªããžã§ã¯ããäœæããŸããããã©ã®ããã«ããŠãã®å±æ§ã®å€ãèšå®ããŸããïŒ ãã®ããããšã³ã³ãŒãã¯
Key-Valueã¿ã€ãã§ããããã®æ¬è³ªã¯2ã€ã®æ±çšã¡ãœãããããã1ã€ã¯æå®ãããååã§æå®ãããå€ãèšå®ãã2çªç®ã¯æââå®ãããååã§å€ãæœåºããããšã§ãã èŠãç®ããããã£ãšé£ããèãããŸãã
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
ã³ã³ãœãŒã«åºåïŒ
name = Optional( «»)
ã芧ã®ãšããããã¹ãŠãéåžžã«ç°¡åã§ãã ã©ãã æ¬¡ã«ããã®ãªããžã§ã¯ããããŒã¿ããŒã¹ã«ä¿åããå¿
èŠããããŸãã ãªããžã§ã¯ããäœæããã ãã§ã¯äžååã§ããïŒ ãããã
ãªããžã§ã¯ãã¯ç¹å®ã®ç¹å®ã®ã³ã³ããã¹ãã§ãåç¶ãããããã«ã®ã¿ååšããŸãã ããã§äœæã倿Žãåé€ããããšãã§ããŸãããããã¯ãã¹ãŠç¹å®ã®ã³ã³ããã¹ãå
ã§è¡ãããŸãã ã³ã³ããã¹ããžã®ãã¹ãŠã®å€æŽã
æç€ºçã«ä¿åãããŸã§ãå®éã®ããŒã¿ã¯å€æŽããŸããã ç·šéçšã«éãããã£ã¹ã¯äžã®ãã¡ã€ã«ãšã®é¡äŒŒæ§ãæãããšãã§ããŸã-ãä¿åããã¿ã³ãã¯ãªãã¯ãããŸã§ã倿Žã¯èšé²ãããŸããã å®éãããŒã¿ãåŠçããããã»ã¹å
šäœãæé©åããããšã¯éåžžã«äŸ¿å©ã§çŽ æŽãããããšã§ãã
ã³ã³ããã¹ãã®å€æŽã®ä¿åã¯åºæ¬çã«è¡ãããŸãïŒ
managedObjectContext.save()
ããªã²ãŒãã¢ãžã¥ãŒã«ã«ã¯ããã¹ããŒãããªä¿åã®ããã®æ¢è£œã®é¢æ°ãããããŸãïŒåã®èšäºã§æž¡ããŸããïŒãããŒã¿ãå®éã«å€æŽãããå Žåã«ã®ã¿èšé²ãè¡ãããŸãã
func saveContext () { if managedObjectContext.hasChanges { do { try managedObjectContext.save() } catch { let nserror = error as NSError NSLog("Unresolved error \(nserror), \(nserror.userInfo)") abort() } } }
ãããã£ãŠããªããžã§ã¯ããäœæããã³æžã蟌ãããã®ã³ãŒãå
šäœã¯æ¬¡ã®ããã«ãªããŸãã
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
ãªããžã§ã¯ããäœæããããŒã¿ããŒã¹ã«èšé²ããŸããã ã©ããã£ãŠãããåãæ»ãã®ã§ããããïŒ ããã¯ããã»ã©è€éã§ã¯ãããŸããã ã³ãŒããèŠãŠã¿ãŸãããã
let fetchRequest = NSFetchRequest(entityName: "Customer") do { let results = try self.managedObjectContext.executeFetchRequest(fetchRequest) } catch { print(error) }
ããã§
NSFetchRequestãªã¯ãšã¹ã
ãªããžã§ã¯ããäœæããããŒã¿ãåãåããšã³ãã£ãã£ã®ååããã©ã¡ãŒã¿ãŒãšããŠã³ã³ã¹ãã©ã¯ã¿ãŒã«æž¡ããŸãã æ¬¡ã«ãã³ã³ããã¹ãã¡ãœãããåŒã³åºããŠããã®ãªã¯ãšã¹ãããã©ã¡ãŒã¿ãŒãšããŠæž¡ããŸãã ããã¯ã¬ã³ãŒããååŸããããã®æãç°¡åãªãªãã·ã§ã³ã§ããäžè¬ã«ãNSFetchRequestã¯éåžžã«æè»ã§ãç¹å®ã®æ¡ä»¶äžã§ããŒã¿ãååŸããããã®åºç¯ãªãªãã·ã§ã³ãæäŸããŸãã èšäºã®æ¬¡ã®ããŒãã§æ€èšããããŒã¿ã®ãã£ã«ã¿ãªã³ã°ãšäžŠã¹æ¿ãã®äŸãåèã«ããŠãã ããã
éèŠãªæ³šæïŒ
managedObjectContext.executeFetchRequest颿°ã¯åžžã«ãªããžã§ã¯ãã®
é
åãè¿ããŸãããªããžã§ã¯ãã1ã€ãããªãå Žåã§ããé
åãè¿ãããŸãããªããžã§ã¯ãããŸã£ãããªãå Žåã¯ç©ºã®é
åã«ãªããŸãã
äžèšã«åºã¥ããŠãæ¬¡ã®æ©èœããã¹ãããããŸãã
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
ã³ã³ãœãŒã«åºåïŒ
name = Optional( «») name - «» name - «»
ãªããžã§ã¯ããåãåããšããã«ãäžèšã®ãªã¹ãã§ã¯ã«ãŒãå
ã®
çµæå€æ°ã§ããããããä»»æã«ç·šéïŒæ°ãããªããžã§ã¯ãã®å±æ§èšå®ãšéãã¯ãããŸããïŒããŸãã¯åé€ã§ããŸãã åé€ã¯ãã³ã³ããã¹ã倿°ã®å¯Ÿå¿ããã¡ãœãããåŒã³åºãããšã«ããå®è¡ãããåé€ããããªããžã§ã¯ãã¯ãã©ã¡ãŒã¿ãŒãšããŠæž¡ãããŸãã
self.managedObjectContext.deleteObject(result)
åé€åŸãã³ã³ããã¹ãã®æ°žç¶åã匷å¶ããå¿
èŠããããŸããå¿ããªãã§ãã ããã
å°ããªãªãã·ã§ã³ã®è¿œå ããŒãã«ã¬ãã«ã§ã³ã¢ããŒã¿ããããã¿ããããããå Žåã¯ãèŠãç®ãããç°¡åã§ãã ã·ãã¥ã¬ãŒã¿ã䜿çšããå ŽåãããŒã¿ããŒã¹ãã¡ã€ã«ã¯æ¬¡ã®ã©ããã«ãããŸãã
/Users/<USER>/Library/Developer/CoreSimulator/Devices/<DEVICE_ID>/data/Containers/Data/Application/<APPLICATION_ID>/Documents/<FileName>.sqlite
ã¢ããªã±ãŒã·ã§ã³ã«ã©ããªçš®é¡ã®IDãããããæšæž¬ããŠããã®ãã¡ã€ã«ãæ¥ãã§æåã§æ€çŽ¢ããªãã§ãã ããã ããªãã®ããã«ããããã¹ãŠè¡ãçŽ æŽããããŠãŒãã£ãªãã£ããããŸã
-SimSim ïŒèè
ã«æè¬ããããã«ãã®æ©äŒãå©çšããŸãïŒã
èµ·ååŸãã¡ãã¥ãŒããŒã§ãã³ã°ããæ¬¡ã®ããã«ãªããŸãïŒãããã¢ã€ã³ã³ïŒïŒ

å®éãç®çã¯æããã§ãããŠãŒãã£ãªãã£ã¯ãã·ãã¥ã¬ãŒã¿ã«ã€ã³ã¹ããŒã«ãããŠããã¢ããªã±ãŒã·ã§ã³ã®ã¹ãã¬ãŒãžã®ãªã¹ãã衚瀺ãããããã«çŽæ¥ã¢ã¯ã»ã¹ã§ããããã«ããŸãã

SQLiteãã¡ã€ã«èªäœã衚瀺ããã«ã¯ã
Datum Freeãªã©ã®ç¡æã®ãã¥ãŒã¢ã䜿çšã§ããŸãã

ã³ã¢ããŒã¿ã¯ã©ã¹ã®èªåçæ
Key-Valueã¡ãœããã¯ãã·ã³ãã«ã§æ±çšæ§ããããããã«äœ¿çšã§ãããšããç¹ã§åªããŠããŸãã ããããå°è±¡ãæãªã2ã€ã®ãã€ã³ãããããŸãïŒ1ã€ã¯ãç§ãã¡ãæãã§ãããããå€ãã®ã³ãŒããããã2ã€ç®ã¯ãå°éå
·ã®ååãæååãšããŠæ¯åæž¡ãããšã§ããééããç¯ããããã§ãïŒèªåè£å®ã¯ãããŸããïŒã ãããŠãèšç®ãã£ãŒã«ããç¬èªã®ã³ã³ã¹ãã©ã¯ã¿ãŒãªã©ã管ç察象ãªããžã§ã¯ãããããå°ãæ©èœãå¿
èŠãªå Žåã¯ã©ãããã°ããã§ããããïŒ Core Dataã«ã¯è§£æ±ºçããããŸãïŒ
NSManagedObjectããç¶æ¿ããå¿
èŠãªãã®ããã¹ãŠè¿œå ããããšã§ãç¬èªã®ã¯ã©ã¹ãç°¡åã«äœæã§ããŸãïŒããã«ãCore Dataã
èªåçã«äœæããŸãïŒã ãã®çµæããããŒãžãªããžã§ã¯ããéåžžã®OOPãªããžã§ã¯ããšããŠæäœããã³ã³ã¹ãã©ã¯ã¿ãŒãåŒã³åºããŠããªãŒãã³ã³ããªãŒãã䜿çšããŠããã€ã³ããä»ããŠããã£ãŒã«ãã«ã¢ã¯ã»ã¹ããããšã§äœæã§ããŸãïŒã€ãŸããOOPã®ãã¹ãŠã®åã¯ãŠãŒã¶ãŒã®æã«ãããŸãïŒã
ããŒã¿ã¢ãã«ãšãã£ã¿ãŒãéãããšã³ãã£ãã£ãéžæããŸãã ã¡ãã¥ãŒã§éžæããŸãïŒã³ã³ããã¹ãäŸåãªã®ã§ããšã³ãã£ãã£ãéžæããå¿
èŠããããŸãïŒ
Editor \ Create NSManagedObject Subclass ...
ããŒã¿ã¢ãã«éžæãŠã£ã³ããŠãéããŸãã ã¯ããäžè¬çã«ãããã€ãã®ç¬ç«ããããŒã¿ã¢ãã«ãååšããå ŽåããããŸããã1ã€ãããããéžæã¯æããã§ãã

次ã®ãŠã£ã³ããŠã§ãã¯ã©ã¹ãçæããå¿
èŠããããšã³ãã£ãã£ãéžæããããã«æ±ããããŸãããã¹ãŠãäžåºŠã«éžæããŸãããã

æ¬¡ã®æšæºãŠã£ã³ããŠã¯ããªãã¿ã®ã¯ãã§ããèŠåã衚瀺ã§ããã®ã¯ã
ãããªããã£ãããŒã¿åã«ã¹ã«ã©ãŒããããã£ã䜿çšããããªãã·ã§ã³ã ãã§ãã ãã®ãªãã·ã§ã³ã®æå³ã¯äœã§ããïŒãã®ãªãã·ã§ã³ãéžæãããŠããªãå Žåãããªããã£ãããŒã¿åïŒFloatãDoubleãIntãªã©ïŒã®ä»£ããã«ãå
éšã«å€ãå«ãäžçš®ã®ãã©ãããŒãã䜿çšãããŸãã ããã¯
Objective-Cã«åœãŠã¯ãŸãå¯èœæ§ãé«ãã§ããããã¯ã
Optionalãªã©ã®
ãªãã·ã§ã³ããªãããã§ãã ãã ããç§ãã¡ã¯
Swiftã䜿çšããŠããããããã®ãªãã·ã§ã³ãéžæããªãçç±ã¯ãããŸããïŒãããããçµéšè±å¯ãªååãã³ã¡ã³ãã§ä¿®æ£ããŠãããã§ãããïŒã

ãã®çµæãCore Dataã¯ããã€ãã®ãã¡ã€ã«ãäœæããŸãããããã®ãã¡ã€ã«ãäœã§ããããèŠãŠã¿ãŸãããã

åãšã³ãã£ãã£ã¯ãããšãã°æ¬¡ã®ãããªãã¡ã€ã«ã®ãã¢ã§è¡šãããŸãã
Customer.swift
ãã®ãã¡ã€ã«ã¯ããªãã®ããã®ãã®ã§ãå¿
èŠãªæ©èœã远å ã§ããŸããããã¯ä»ããè¡ããŸããCustomer+CoreDataProperties.swift
ã¯ã³ã¢ããŒã¿ãã¡ã€ã«ã§ããè§Šããªãã»ããããã§ããããçç±ã¯æ¬¡ã®ãšããã§ãããã®ãã¡ã€ã«ã«ã¯ãšã³ãã£ãã£ã®å±æ§ãšé¢ä¿ã®èª¬æãå«ãŸããŠããŸããã€ãŸãããã®éšåã倿Žãããšããšã³ãã£ãã£ãšãã®è¡šçŸã¯ã©ã¹ããããŸãåæãããŸãã
ãŸããäœããã®çç±ã§ããŒã¿ã¢ãã«ã倿Žããå Žåã¯ããããã®çæãããã¯ã©ã¹ãåäœæã§ããŸãã ãã®å Žåãæåã®ãã¡ã€ã«ïŒ
Customer.swift
ïŒã¯ãã®ãŸãŸæ®ãã2çªç®ã®ãã¡ã€ã«ïŒ
Customer+CoreDataProperties.swift
ïŒã¯æ°ãããã¡ã€ã«ã«å®å
šã«çœ®ãæããããŸãã
ããŠããšã³ãã£ãã£ã®ã¯ã©ã¹ãäœæããŸãããã¯ã©ã¹ã®ãã£ãŒã«ãã«ããã€ã³ããä»ããŠãã¢ã¯ã»ã¹ã§ããããã«ãªã£ãã®ã§ããµã³ãã«ããã銎æã¿ã®ããå€èгã«ããŸãããã
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
ã¯ããã«è¯ãã ãããããªããžã§ã¯ãã®äœæã¯å°ãéãèŠããŸãã ãã®ãã¹ãŠãã³ã³ã¹ãã©ã¯ã¿ãŒã§é衚瀺ã«ããããšãå¯èœã§ããããã®ããã«ã¯ããªããžã§ã¯ããäœæãã管çã³ã³ããã¹ããžã®ãªã³ã¯ãå¿
èŠã§ãã ãšããã§ãããã§ã¯Core Data Stackãå®çŸ©ãããŠããã®ã§ãããªã²ãŒãã¢ãžã¥ãŒã«ã§ã³ãŒããäœæããŠããŸãã ãã¶ãããªãã¯ãã£ãšè¯ããã®ãæãã€ãããšãã§ããŸããïŒ
ã³ã¢ããŒã¿ãããŒãžã£ãŒ
ã³ã¢ããŒã¿ã䜿çšããéã®æãäžè¬çãªæ¹æ³ã¯ãã³ã¢ããŒã¿ã¹ã¿ãã¯ã«åºã¥ãã
ã·ã³ã°ã«ãã³ãã¿ãŒã³ã䜿çšããããšã§ãã ã·ã³ã°ã«ãã³ãã°ããŒãã«ã¢ã¯ã»ã¹ãã€ã³ããæã€ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã1ã€ã ãååšããããšãä¿èšŒããŠããããšã誰ããç¥ããªãããŸãã¯å¿ããå Žåã¯ããç¥ããããŸãã ã€ãŸããã¯ã©ã¹ã«ã¯ã誰ãããã€ãã©ãããã¢ã¯ã»ã¹ãããã«é¢ä¿ãªããåžžã«1ã€ã®ãªããžã§ã¯ããããããŸããã çŸåšããã®ã¢ãããŒããå®è£
ããŠããŸãããã³ã¢ããŒã¿ã¹ã¿ãã¯ã®ã°ããŒãã«ã¢ã¯ã»ã¹ãšç®¡çã®ããã«ã·ã³ã°ã«ãã³ã䜿çšããŸãã
CoreDataManager.swiftãšããååã®æ°ãã空ã®ãã¡ã€ã«ãäœæããŸã



ã¯ããã«ãã³ã¢ããŒã¿ã€ã³ããŒããã£ã¬ã¯ãã£ãã远å ããŠãã·ã³ã°ã«ãã³èªäœãäœæããŸãããã
import CoreData import Foundation class CoreDataManager {
ããã§ã¯ãCore Dataã«é¢é£ãããã¹ãŠã®é¢æ°ãšå®çŸ©ãã¢ããªã±ãŒã·ã§ã³ããªã²ãŒãã¢ãžã¥ãŒã«ããç§»åããŸãããã
import CoreData import Foundation class CoreDataManager {
ããã§ã·ã³ã°ã«ãã³ãã§ããã¢ããªã±ãŒã·ã§ã³ã®ã©ãããã§ãã³ã¢ããŒã¿ã¹ã¿ãã¯ã«ã¢ã¯ã»ã¹ã§ããŸãã ããšãã°ããããŒãžã³ã³ããã¹ãã®åŒã³åºãã¯æ¬¡ã®ããã«ãªããŸãã
CoreDataManager.instance.managedObjectContext
ããã§ã管çãªããžã§ã¯ããäœæããããã«å¿
èŠãªãã®ãã¹ãŠãã³ã³ã¹ãã©ã¯ã¿ãŒã«è»¢éããŸãããã
ã¢ããªã±ãŒã·ã§ã³ããªã²ãŒãã¢ãžã¥ãŒã«ã«æ»ã£ãŠãããã€ã倿Žãå ããŸãããã æåã«ã管ç察象ãªããžã§ã¯ãã®äœæã1è¡ã«ç°¡ç¥åããïŒã¯ã©ã¹ã®æ°ããã³ã³ã¹ãã©ã¯ã¿ãŒãåŒã³åºããŸãïŒã次ã«ç®¡ç察象ã³ã³ããã¹ããžã®ãªã³ã¯ãäœæãããŸã
self.managedObjectContext
次ã®ãã®ã«çœ®ãæããå¿
èŠããããŸã
CoreDataManager.instance.managedObjectContext
ããã§ã³ãŒãã¯å®å
šã«éŠŽæã¿ã®ãããã®ã«ãªãã管ç察象ãªããžã§ã¯ãã§ã®äœæ¥ã¯éåžžã®OOPãªããžã§ã¯ããšããã»ã©å€ãããŸããã
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
æªããªãã§ããïŒ ããšã¯ãæ®ãã®ãšã³ãã£ãã£ã«å¯ŸããŠåæ§ã®ã³ã³ã¹ãã©ã¯ã¿ãäœæããã ãã§ãã ãã ããæåã«ã³ãŒãã®éãæžããããã«å¥ã®æ¹åãè¡ã£ãŠã¿ãŸããã
CoreDataManager
ãšã³ãã£ãã£ã®èª¬æãè¿ã颿°ãäœæããŸãã
CoreDataManager.swift
ã¢ãžã¥ãŒã«ã«æ»ã£ãŠã
entityForName
颿°ã远å ããŸãããã
import CoreData import Foundation class CoreDataManager {
Customer.swift
ã¢ãžã¥ãŒã«ã«æ»ããæ¬¡ã®ããã«ã³ãŒãã倿ŽããŸãã
import Foundation import CoreData class Customer: NSManagedObject { convenience init() { self.init(entity: CoreDataManager.instance.entityForName("Customer"), insertIntoManagedObjectContext: CoreDataManager.instance.managedObjectContext) } }
ããã§ãã³ãŒãã®éè€ãæå°éã«æããããŸãã ä»ã®ãšã³ãã£ãã£ã«å¯ŸããŠåæ§ã®ã³ã³ã¹ãã©ã¯ã¿ãäœæããŸãããã ç§ã¯1ã€ã®äŸãæããŸãããããã¯ç°¡åã§ãããåââé¡ãåŒãèµ·ããããšã¯ãããŸããïŒãšã³ãã£ãã£ã®ååãé€ããŠããã¹ãŠãåãã§ãïŒã
çµè«ã®ä»£ããã«
äœæãã
CoreDataManagerã¯ãCore DataããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšã§ãããšããæå³ã§éåžžã«æ®éçã§ããããšã«æ³šæããŠãã ããã ãããžã§ã¯ãã«æ¥ç¶ããå¯äžã®ãã®ã¯ãããŒã¿ã¢ãã«ãã¡ã€ã«ã®ååã§ãã ãã以äžã ã€ãŸãããã®ã¢ãžã¥ãŒã«ã1åèšè¿°ããã ãã§ãããŸããŸãªãããžã§ã¯ãã§åžžã«äœ¿çšã§ããŸãã
æ¬¡ã®æåŸã®ããŒãã§ã¯ã
Storyboard
ãš
UITableViewController
ããŠå€ãã®äœæ¥ãè¡ãã
NSFetchedResultsController
æ
£ããŠãããäžåºŠ
NSFetchRequest
ãŸãã
ãã®ãããžã§ã¯ãã¯githubã«ãããŸã