ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ core data Π² Π³ΠΎΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π‘ΡΠ°ΡΡΡΠ΅ΠΌ Ρ Core Data! Π‘Π»ΠΎΠΆΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ
Π’Π΅ΠΌ Ρ Core Data ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ, Π½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Π° ΡΠ°ΠΊ ΠΆΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Β«ΡΠΌΠ½ΡΡ Β» ΡΠ»ΠΎΠ² ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΡΡΠ°ΡΡ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ².
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅ ΠΎΡ Apple ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ, ΡΡΠΎΠ±Ρ Π΄Π°ΠΆΠ΅ Β«ΡΠ°ΠΌΡΠ΅ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅Β» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠΌΠΎΠ³Π»ΠΈ Π²ΡΠ½Π΅ΡΡΠΈ Π΄Π»Ρ ΡΠ΅Π±Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π·Π½Π°Π½ΠΈΠΉ ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌ Π² ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .
ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΡΡΡΠΎΠΏ
Core Data ΠΎΡΠ΅Π½Ρ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΠ Π±ΡΠ΄Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ multiple context Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ advance ΡΠΈΡΠΊΠΈ.
Π¦Π΅Π»Π΅Π²Π°Ρ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ Π»ΡΠ΄ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° ΡΠ°Π±ΠΎΡΡ Ρ Core Data.
ΠΡ ΡΡΠΎ ΠΆβ¦ ΠΠ°ΡΠ½Π΅ΠΌ!
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅:
NOTE: Core Data ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠΈΡΠ»ΠΎ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ Ρ 00:00:00 UTC 1 Π―Π½Π²Π°ΡΡ 1970 Π΄ΠΎ Π²Π°ΡΠ΅ΠΉ Π΄Π°ΡΡ.
NOTE: ΠΡΠ΅Π³Π΄Π° ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅ΠΊΠΌΠ°ΡΠΊ Π½Π° ΠΏΠΎΠ»Π΅ Allow External Storage. Core Data ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ , ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ 100 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ, ΡΠΎ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ Core Data Π° Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΠΎ ΡΠ»ΡΡΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡ ΠΎΡ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΏΠ°ΠΌΡΡΡΡ.
Π£ Π½Π°Ρ Π΅ΡΡΡ 3 Entities, Andrey, Home, Car.
Editor > Create NSManagedObject Subclass
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°Π΄Π°ΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄:
Π Π°Π±ΠΎΡΠ° Ρ NSManagedObjectContext ΠΈ PersistentStoreCoordinator
ΠΠ΅ΡΠ°ΡΡ ΠΈΡ Core Data Stack:
ΠΡΠ»ΠΈ ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΠΎ Π²ΡΠ΅ Π²Π°ΡΠΈ Entity ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Ρ Π½Π° Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ ΡΠ²Π΅ΡΡ Ρ ΠΊΠ°ΠΊ Managed Object. ΠΡΠ΅ Π½Π°ΡΠΈ Managed Objects Ρ ΡΠ°Π½ΡΡΡΡ Π² NSManagedObjectContext. Context Π‘ΡΡΠ»Π°Π΅ΡΡΡ Π½Π° NSPersistentStoreCoordinator ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ SQL Π²Π°ΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π² Π²ΠΈΠ΄Π΅ Row Cache, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΠΉΡΠ°Ρ Π½Π΅ ΠΎΠ± ΡΡΠΎΠΌ.
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π²Π°ΡΠ΅Π³ΠΎ ManagedObject(Entity), Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ NSPersistentContainer ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±Π΅ΡΡΠΊΠΎΠΉ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ NSPersistentStoreCoordinator.
ΠΠ°Π»Π΅Π΅ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ NSManagedObjectContext ΡΠ΅ΡΠ΅Π· Π½Π°Ρ PersistentContainer:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π°ΡΠ΅Π³ΠΎ ManageObject ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π΅ΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
ΠΠ»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
Π ΠΌΠ΅ΡΠΎΠ΄Π΅ Π²ΡΡΠ΅ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅. Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄:
ΠΠ΅ΡΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π² ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π½Π°Π΄ Π½ΠΈΠΌ
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· Core Data.
NOTE: Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΡΡΠΏΠΈΠ»ΠΈ Π² ΡΠΈΠ»Ρ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΈΠ½Π°ΡΠ΅ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡ.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² Π½Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ· Core Data ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½ΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ NSFetchRequest. Π― Π½Π΅ Π±ΡΠ΄Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π²ΠΎ Π²ΡΡ ΠΌΠΎΡΡ FetchRequest ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ° ΡΡΠ°ΡΡΡΡ ΡΠ°ΡΡΡΠΈΡΠ°Π½Π° Π½Π° Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ².
ΠΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ NSFetchRequest Π΄Π΅Π»Π°Π΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ:
NOTE: ΠΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ NSFetchRequest Managed Object Context ΠΈ Persistent Store Coordinator Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ Π²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ ΠΏΠΎΠΊΠ° Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΎΠΏΠΈΡΠ°Π» ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Core Data ΠΏΠΎ-ΠΌΠΎΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ , ΡΠΎΡ ΡΠ°Π½ΡΡΡ, ΡΠ΄Π°Π»ΡΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΡ .
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎ Core Data ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Β«ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈΒ» ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π² Π°ΡΡΠ΅Π½Π°Π»Π΅ Π»ΡΠ±ΠΎΠ³ΠΎ IOS-Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅ΡΠ°
Add Core Data to Existing iOS Project
If you have ever struggled to add Core Data to an existing iOS project, I feel your pain. Years ago when I tried to do it I failed and decided to recreated the project from scratch.
But recently I decided that I should try and add Core Data into an existing project. It turns out that it is actually quite a simple task.
There are a few things that are required when adding Core Data to an existing iOS project. The main part being that if you did not check the βUse Core Dataβ checkbox when you created your project, then you wonβt even have the data model file, which is a bit of an issue. The other issue is that you donβt have the correct code in your AppDelegate file.
So in this tutorial I am going to show you how you can easily add these two requirements to your project so that you can use Core Data.
If you donβt want to read the article, you can always watch the video version:
Step 1: Adding the data model file
The first that you need to do is to add the data model file. To do this you will add a file to your project in the normal way.
Now you need to select the correct file. To find the data model file you will need to scroll down a bit until you see the heading βCore Dataβ.
It should look something like this:
If you are enjoying this tutorial, sign up for my email list to be notified about new tutorials. Sign Up
Step 2
Once you have added your data model file you need to update your AppDelegate file.
Like I mentioned previously, when you check that checkbox when starting a new iOS project, it will add all these things, and this is the code that it adds to your AppDelegate file.
The first thing you need to do is to add the following code at the top of your file by all the other imports you have.
Once you have done that you will be able to add the next part of the code.
When you add that code to your project it will not run. I have added a line of text that will not compile. You need to replace
Something like the below:
let container = NSPersistentContainer(name: «TestModel»)
Conclusion
That should be it, you should now be able to use Core Data in your project. If you want to see me test the code you can watch the video that I have included at the top of the post.
If you found this post or my video tutorial useful, please share and subscribe to my YouTube channel, it is much appreciated π
Core Data + Swift Π΄Π»Ρ ΡΠ°ΠΌΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ : Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ (ΡΠ°ΡΡΡ 2)
ΠΡΠΎ Π²ΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠΈΠ»ΠΎΠ³ΠΈΠΈ ΠΎ Core Data, ΠΏΠ΅ΡΠ²Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° Π·Π΄Π΅ΡΡ: Core Data + Swift Π΄Π»Ρ ΡΠ°ΠΌΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ : Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ (ΡΠ°ΡΡΡ 1).
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΠΎΠ±ΡΠΈΠΌΠΈ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠΌΠΈ ΠΎ Core Data, ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ (NSManagedObjectModel, NSPersistentStoreCoordinator, NSManagedObjectContext), Π Π΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ .
Π ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ NSEntityDescription ΠΈ NSManagedObject, Π°Π²ΡΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΠ΅ΠΉ ΠΊΠ»Π°ΡΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ, ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ²ΡΡΠ°ΡΡΠΈΠΉ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ Core Data.
NSEntityDescription ΠΈ NSManagedObject
ΠΠ°ΡΠ½Π΅ΠΌ Ρ NSEntityDescription β ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π°ΡΠ΅ΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ. ΠΡΠ΅ ΡΠΎ, ΡΡΠΎ ΠΌΡ Π½Π°ΡΠ°Π½ΡΠ°Π·ΠΈΡΠΎΠ²Π°Π»ΠΈ Ρ ΡΡΡΠ½ΠΎΡΡΡΡ Π² Π Π΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ (Π°ΡΡΠΈΠ±ΡΡΡ, Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΠΈ, ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΡΠ΅Π΅), ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΡΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ Ρ Π½ΠΈΠΌ β ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΅Π³ΠΎ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΊΡΠ΄Π°-ΡΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ.
NSManagedObject β ΡΡΠΎ ΡΠ°ΠΌ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Ρ Π‘Π£ΠΠ (Π½Π°ΡΠ°ΡΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΡΠ°ΡΡΠ΅), ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ NSManagedObject β Π·Π°ΠΏΠΈΡΡ (ΡΡΡΠΎΠΊΠ°) Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ Ρ ΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠ°. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ Π½Π°Ρ Π΅ΡΠ΅ Π½Π΅Ρ Π³ΠΎΡΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ (ΠΌΡ Π·Π°ΠΉΠΌΠ΅ΠΌΡΡ ΡΡΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅), ΡΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌ ΠΏΡΡΠΌΠΎ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Π΄Π΅Π»Π΅Π³Π°ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ( AppDelegate.swift ). ΠΠ΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΠ΅ΡΡ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π°ΠΆΠ½Π° Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ, ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΡ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅ΠΌ ΠΎΡΡΡΠ΄Π° Π² Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ. Π― Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡ Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠ°) Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ (entityDescription), ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΡΡΠΎΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½ΡΠΆΠ½ΠΎΠΉ Π½Π°ΠΌ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ: ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ, ΡΠ²ΡΠ·Π°Π½ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΠΎΠΌ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠ²ΡΠ·Π°Π½ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ Π΄Π°Π½Π½ΡΡ , Π³Π΄Π΅ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ ΠΏΠΎΠΈΡΠΊ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΈΠΌΠ΅Π½ΠΈ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ°ΡΠ΅ΠΌ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΡΠ½ΠΎΡΡΠΈ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΌ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (managedObject). ΠΡΠΎΡΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ (Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠ°ΠΊ Π²Ρ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ²).
Π₯ΠΎΡΠΎΡΠΎ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠ°ΠΊ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠΎΠ²? ΠΠ»Ρ ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΈΠΏΡ Key-Value, ΡΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΡΡ Π΄Π²Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΈΠΌΠ΅Π½ΠΈ, Π° Π²ΡΠΎΡΠΎΠΉ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΈΠΌΠ΅Π½ΠΈ. ΠΠ²ΡΡΠΈΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ.
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π²ΡΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΠ΄Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅. Π’Π΅ΠΏΠ΅ΡΡ Π½Π°Π΄ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π² Π½Π°ΡΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . Π Π°Π·Π²Π΅ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ β Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ? ΠΠ΅Ρ, Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Β«ΠΆΠΈΠ²Π΅ΡΒ» Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅Π³ΠΎ ΡΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ, ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ΄Π°Π»ΡΡΡ, Π½ΠΎ ΡΡΠΎ Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π²Π½ΡΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. ΠΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π²Ρ ΡΠ²Π½ΠΎ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π²Ρ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ΅Π°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ Π½Π° Π΄ΠΈΡΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ β ΠΏΠΎΠΊΠ° Π²Ρ Π½Π΅ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ Β«Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡΒ» Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ Π·Π°ΠΏΠΈΡΠ°Π½Ρ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈ Π·Π΄ΠΎΡΠΎΠ²ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ.
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎ:
Π£ Π½Π°Ρ Π΄Π°ΠΆΠ΅ Π΅ΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Π΄Π΅Π»Π΅Π³Π°ΡΠ° Π³ΠΎΡΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Β«ΡΠΌΠ½ΠΎΠ³ΠΎΒ» ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ (ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ Π½Π΅ΠΉ Π²ΡΠΊΠΎΠ»ΡΠ·Ρ Π² ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΡΠ°ΡΡΠ΅), Π·Π°ΠΏΠΈΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ:
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Π΅ΡΡ ΠΊΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ Π΅Π³ΠΎ Π² Π½Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΊ Π½Π°ΠΌ ΡΠ΅ΠΏΠ΅ΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ? ΠΡΠΎ Π½Π΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΠΊΠΎΠ΄.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ-Π·Π°ΠΏΡΠΎΡ NSFetchRequest, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π² ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΡΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π²ΠΎΠΎΠ±ΡΠ΅ NSFetchRequest ΠΎΡΠ΅Π½Ρ Π³ΠΈΠ±ΠΎΠΊ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠΈΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ. ΠΡΠΈΠΌΠ΅Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ°ΡΡΠΈ.
ΠΠ°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΡΠ½ΠΊΡΠΈΡ managedObjectContext.executeFetchRequest Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ β Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ Π±ΡΠ΄Π΅Ρ ΠΌΠ°ΡΡΠΈΠ², Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅Ρ Π²ΠΎΠΎΠ±ΡΠ΅ β ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ².
Π‘ ΡΡΠ΅ΡΠΎΠΌ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ, Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ, Π² Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π»ΠΈΡΡΠΈΠ½Π³Π΅ ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ result Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π°, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅Π³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ (Π·Π΄Π΅ΡΡ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΡΠ»ΠΈΡΠΈΠΉ ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°), Π»ΠΈΠ±ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ:
ΠΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΠΎΠ± ΡΡΠΎΠΌ.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Β«ΠΏΠΎΡΡΠΏΠ°ΡΡΒ» Core Data ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅, Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ°Π±Π»ΠΈΡ, ΡΠΎ ΡΡΠΎ ΠΏΡΠΎΡΠ΅ ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π‘ΠΈΠΌΡΠ»ΡΡΠΎΡ, ΡΠΎ ΡΠ°ΠΉΠ» Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π»Π΅ΠΆΠΈΡ Π³Π΄Π΅-ΡΠΎ Π·Π΄Π΅ΡΡ:
ΠΠ΅ ΡΠΎΡΠΎΠΏΠΈΡΠ΅ΡΡ ΠΈΡΠΊΠ°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π²ΡΡΡΠ½ΡΡ, Π³Π°Π΄Π°Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΠΆΠ΅ ID Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΡΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ°, Π΄Π΅Π»Π°ΡΡΠ°Ρ ΡΡΠΎ Π²ΡΠ΅ Π·Π° Π²Π°Ρ β SimSim (ΠΠΎΠ»ΡΠ·ΡΡΡΡ ΡΠ»ΡΡΠ°Π΅ΠΌ, Ρ ΠΎΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π°Π²ΡΠΎΡΠ°ΠΌ).
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠ½Π° Π²ΠΈΡΠΈΡ Π² ΡΡΡΠΎΠΊΠ΅ ΠΌΠ΅Π½Ρ ΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΠΎΡ ΡΠ°ΠΊ (Π·Π½Π°ΡΠΎΠΊ Π»Π΅ΡΡΡΠ΅ΠΉ ΠΌΡΡΠΊΠΈ):
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ: ΡΡΠΈΠ»ΠΈΡΠ° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ
Π½Π° ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ°Π·Ρ ΠΊ Π½ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ:
ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° SQLite ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π»ΡΠ±ΡΠΌ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠΌΠΎΡΠΎΡΡΠΈΠΊΠΎΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Datum Free
ΠΠ²ΡΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Core Data
ΠΠ΅ΡΠΎΠ΄ Key-Value, Ρ ΠΎΡΠΎΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΏΡΠΎΡΡ, ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Β«ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈΒ». ΠΠΎ Π΅ΡΡΡ Π΄Π²Π° ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΡΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅: Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΊΠΎΠ΄Π° Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ, Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ , ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΠΈΠΌΡ ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠ° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ, Π»Π΅Π³ΠΊΠΎ ΠΎΡΠΈΠ±ΠΈΡΡΡΡ (Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π΄Π΅ΡΡ Π½Π΅Ρ). Π ΠΊΠ°ΠΊ Π½Π°ΠΌ Π±ΡΡΡ, Π΅ΡΠ»ΠΈ Π·Π°Ρ ΠΎΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ? Π£ Core Data Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅! ΠΡ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡ (Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»ΡΡΠ΅ β Core Data ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π·Π° Π½Π°Ρ), ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π² Π΅Π³ΠΎ ΠΎΡ NSManagedObject ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠ² Π²ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ°ΠΊ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΠΠ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π΅Π³ΠΎ ΠΏΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡ ΠΊ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΠΌ Β«ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΊΡΒ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (ΡΠΎ Π΅ΡΡΡ Π²ΡΡ ΠΌΠΎΡΡ ΠΠΠ Π² Π²Π°ΡΠΈΡ ΡΡΠΊΠ°Ρ ).
ΠΡΠΊΡΠΎΠΉΡΠ΅ Π Π΅Π΄Π°ΠΊΡΠΎΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ Π²ΡΠ΄Π΅Π»ΠΈΡΠ΅ Π»ΡΠ±ΡΡ ΡΡΡΠ½ΠΎΡΡΡ. ΠΡΠ±Π΅ΡΠ΅ΡΠ΅ Π² ΠΌΠ΅Π½Ρ (ΠΎΠ½ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°Π΄ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊΡΡ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΡΡΠ½ΠΎΡΡΡ) Editor \ Create NSManagedObject Subclassβ¦
ΠΡΠΊΡΠΎΠ΅ΡΡΡ ΠΎΠΊΠ½ΠΎ Π²ΡΠ±ΠΎΡΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ
; Π΄Π°, Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ
ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π΄Π°Π½Π½ΡΡ
, Π½ΠΎ Ρ Π½Π°Ρ ΠΎΠ½Π° ΠΎΠ΄Π½Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ±ΠΎΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΎΠΊΠ½Π΅ Π½Π°ΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π²ΡΠ±ΡΠ°ΡΡ ΡΡΡΠ½ΠΎΡΡΠΈ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΠ±Π΅ΡΠ΅ΠΌ ΡΡΠ°Π·Ρ Π²ΡΠ΅.
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π·Π½Π°ΠΊΠΎΠΌΠΎ, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΡΠΎ Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΡΠΎΡΠΎΠΆΠΈΡΡ, ΡΡΠΎ ΠΎΠΏΡΠΈΡ Β«Use scalar properties for primitive data typesΒ». Π ΡΠ΅ΠΌ ΡΠΌΡΡΠ» ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠΈ: Π΅ΡΠ»ΠΈ ΡΡΡ ΠΎΠΏΡΠΈΡ Π½Π΅ Π²ΡΠ±ΠΈΡΠ°ΡΡ, ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ (Float, Double, Int ΠΈ ΠΏΡΠΎΡΠ΅Π΅) Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½Π°Ρ Β«ΠΎΠ±Π΅ΡΡΠΊΠ°Β», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠΈ ΡΠ΅Π±Ρ. ΠΡΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ Objective-C, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΌ Π½Π΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΊΠ°ΠΊ Optional. ΠΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Swift, ΡΠ°ΠΊ ΡΡΠΎ Ρ Π½Π΅ Π²ΠΈΠΆΡ ΠΏΡΠΈΡΠΈΠ½ Π½Π΅ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΡΡ ΠΎΠΏΡΠΈΡ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΡΠ½ΡΠ΅ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΌΠ΅Π½Ρ ΠΏΠΎΠΏΡΠ°Π²ΡΡ).
Π ΠΈΡΠΎΠ³Π΅, Core Data ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ Π½Π°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΡΡΠΎ Π·Π° ΡΠ°ΠΉΠ»Ρ.
Π₯ΠΎΡΠΎΡΠΎ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΏΠΎΠ»ΡΠΌ ΠΊΠ»Π°ΡΡΠ° Β«ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΊΡΒ», Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ΄Π°Π΄ΠΈΠΌ Π½Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΉ Π²ΠΈΠ΄.
Π’Π°ΠΊ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π»ΡΡΡΠ΅. ΠΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΆΠ΅Π»ΠΎΠ²Π΅ΡΠ½ΠΎ. ΠΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠΏΡΡΡΠ°ΡΡ Π²ΡΠ΅ ΡΡΠΎ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½Π° ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΡΠ°ΡΠΈ, ΠΌΡ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Π΄Π΅Π»Π΅Π³Π°ΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π΄Π΅ΡΡ Ρ Π½Π°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Core Data Stack. ΠΠΎΠΆΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠ»ΡΡΡΠ΅?
Core Data Manager
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Core Data ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° Singleton Π½Π° Π±Π°Π·Π΅ Core Data Stack. ΠΠ°ΠΏΠΎΠΌΠ½Ρ, Π΅ΡΠ»ΠΈ ΠΊΡΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΈΠ»ΠΈ Π·Π°Π±ΡΠ», ΡΡΠΎ Singleton Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ°. Π’ΠΎ Π΅ΡΡΡ, Ρ ΠΊΠ»Π°ΡΡΠ° Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΡΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΎΡΠΊΡΠ΄Π° ΠΊ Π½Π΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ. ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ, Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ Singleton Π΄Π»Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Core Data Stack.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΡΡΠΎΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ CoreDataManager.swift
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΠΈΠΌΠΏΠΎΡΡΠ° Core Data ΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΌ Singleton.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠΌ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π΅Π»Π΅Π³Π°ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Core Data.
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Singleton ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Core Data Stack ΠΈΠ· Π»ΡΠ±ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅ΠΌ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ.
Π‘Π½ΠΎΠ²Π° Π²Π΅ΡΠ½Π΅ΠΌΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π΅Π»Π΅Π³Π°ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²Π½Π΅ΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ Π½Π°Ρ ΡΠΏΡΠΎΡΠ°Π΅ΡΡΡ Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (Π²ΡΠ·ΠΎΠ² Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°), Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ , ΡΠ°ΠΊΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ
Π½Π°Π΄ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ
Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π·Π½Π°ΠΊΠΎΠΌΡΠΌ, Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π±ΡΠ΄Π΅Ρ ΠΌΠ°Π»ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΎΠ±ΡΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΠΠ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Π΅ΡΠ½Π΅ΠΌΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Ρ Customer.swift ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΠΎΡ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΡΠ½ΠΎ Π²ΡΠ΅, Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ. Π― ΠΏΡΠΈΠ²Π΅Π΄Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΈΠΉ (Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠ΅ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΡΠ½ΠΎΡΡΠΈ).
ΠΠΌΠ΅ΡΡΠΎ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ CoreDataManager, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½, Π² ΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, ΡΡΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π½Π° Core Data. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ Π½Π°ΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, β ΡΡΠΎ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ»ΡΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ. Π’ΠΎ Π΅ΡΡΡ, Π½Π°ΠΏΠΈΡΠ°Π² ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π² ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .
Core Data + Swift Π΄Π»Ρ ΡΠ°ΠΌΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ : Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ (ΡΠ°ΡΡΡ 1)
ΠΡΠΎ Core Data ΠΈ Swift Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π΅ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΡΡΡΠΊΠΎΡΠ·ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°. ΠΡΠΈ ΡΡΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ°ΡΠ΅ΠΉ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΡ ΡΡΡΡ Core Data, Π½Π΅ Π²Π΄Π°Π²Π°ΡΡΡ Π² ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ. ΠΠ°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ΠΉ Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ Π²ΠΎΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΎΡ ΠΏΡΠΎΠ±Π΅Π», ΠΏΠΎΠΊΠ°Π·Π°Π² Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Core Data Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ, Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π» ΡΠΌΠ΅ΡΡΠΈΡΡ Π²Π΅ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π² ΠΎΠ΄Π½Ρ ΡΡΠ°ΡΡΡ, Π½ΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°Π»ΠΎ ΡΡΠ½ΠΎ, ΡΡΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΌ ΡΠ²Π½ΠΎ Π²Π΅Π»ΠΈΠΊΠΎΠ²Π°Ρ, Π° ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ· ΠΏΠ΅ΡΠ½ΠΈ ΡΠ»ΠΎΠ² Π½Π΅ Π²ΡΠΊΠΈΠ½Π΅ΡΡ, ΡΠΎ Ρ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΡΠ°Π·ΠΎΠ±ΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π½Π° ΡΡΠΈ ΡΠ°ΡΡΠΈ.
ΠΠΌΠ΅ΡΡΠΎ ΠΠ²Π΅Π΄Π΅Π½ΠΈΡ
Core Data β ΡΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³ΡΠ°ΡΠΎΠΌ Π²Π°ΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ»ΡΠΆΠ΅Π½Π½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΡΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² Π°ΡΡΠ΅Π½Π°Π»Π΅ Π»ΡΠ±ΠΎΠ³ΠΎ iOS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΠ°Π²Π΅ΡΠ½ΡΠΊΠ° Π²Ρ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, ΡΠ»ΡΡΠ°Π»ΠΈ ΠΎΠ± ΡΡΠΎΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅, ΠΈ Π½Π΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΈ Π΅ΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π²Ρ Π΅Π³ΠΎ Π΅ΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅, β ΡΠΎ ΡΠ°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°ΡΠ°ΡΡ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π³ΠΎΠ»Π°Ρ ΡΠ΅ΠΎΡΠΈΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΊΡΡΠ½Π° ΠΈ ΠΏΠ»ΠΎΡ ΠΎ ΡΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ c Core Data ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΈΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Core Data, ΠΊΠ°ΠΊ Β«Π‘ΠΏΠΈΡΠΎΠΊ Π΄Π΅Π»Β» ΠΈ ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½Ρ ΡΡΡΠ½ΠΎΡΡΡ ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΠΈ, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π³Π΄Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Ρ Π·Π½Π°ΠΊΠΎΠΌ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ iOS: Π·Π½Π°Π΅Ρ Storyboard ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ MVC, ΡΠΌΠ΅Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π― ΡΠ°ΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠ»ΡΡ Π½Π° iOS Π½Π΅Π΄Π°Π²Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² ΡΡΠ°ΡΡΠ΅ Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, Π½Π΅ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ best practices, ΠΏΡΠΎΡΡΠ±Π° Π·Π° ΡΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ Π½Π΅ ΠΏΠΈΠ½Π°ΡΡ, Π»ΡΡΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΡΠΊΠ½ΡΡΡ Π½ΠΎΡΠΎΠΌ, ΡΠ΅ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠ½Π΅ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ iOS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ. Π― Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Xcode 7.3.1 ΠΈ iOS 9.3.2, Π½ΠΎ Π²ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ Π²Π΅ΡΡΠΈΡΡ .
ΠΠ±ΡΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Core Data
ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, Core Data β ΡΡΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΌ Π³ΡΠ°ΡΠΎΠΌ Π²Π°ΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈ, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π±Π΅Π· Core Data, Π½ΠΎ Ρ ΡΡΠΈΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ ΡΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΡΠ½Π΅Π΅ ΠΈ ΡΠ΄ΠΎΠ±Π½Π΅Π΅.
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ Core Data ΡΡΠ°Π·Ρ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. Π’ΠΎ Π΅ΡΡΡ ΠΊΡΠΈΠ²Π°Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΏΠΎΡΠΎΠ³ Π²Ρ ΠΎΠ΄Π°, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π·ΠΈΡΡΡΡ. ΠΠ»ΡΡΠ΅Π²ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Core Data, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²ΡΠ΅Π³Π΄Π°, ΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
ΠΠ°Π²Π°ΠΉΡΠ΅, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ Core Data Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°Π±Π»ΠΎΠ½Π° Single View Application ΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π²ΡΠ±ΠΎΡΠ° ΠΎΠΏΡΠΈΠΉ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ ΡΠ»Π°ΠΆΠΎΠΊ Β«Use Core DataΒ».
ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π°ΠΆΠΊΠ° Xcode Π΄ΠΎΠ±Π°Π²ΠΈΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΡΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Core Data. Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Core Data ΡΠΆΠ΅ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅: Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°Π΄ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Xcode Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Core Data Π² ΠΊΠ»Π°ΡΡ Π΄Π΅Π»Π΅Π³Π°ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ( AppDelegate.swift ). ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ, ΠΎΠ½ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ:
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ β managedObjectModel β Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΌΠΎΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ Core Data:
ΠΠ΄Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅, β persistentStoreCoordinator β Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π½ΠΎ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΡΠ°ΡΠ°ΡΡΠΈΠΉ Π²ΠΈΠ΄, Π½Π΅ ΡΡΠΎΠΈΡ Π΅Π³ΠΎ ΠΏΡΠ³Π°ΡΡΡΡ β Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ:
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ β managedObjectContext β ΡΠ²Π΅ΡΠ΅Π½, ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π½ΠΈΠΌ Π½Π΅ Π±ΡΠ΄Π΅Ρ:
Π’Π°ΠΊΠΆΠ΅ Ρ Π½Π°Ρ Π·Π΄Π΅ΡΡ Π΅ΡΡΡ ΠΎΠ΄Π½Π° Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. Π‘ΠΌΡΡΠ» Π΅Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½ β Π·Π°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ΠΌ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ.
ΠΠ΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ: Π²ΡΡ ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ (ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅) Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π·Π°ΠΏΠΈΡΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΡΠ²Π½ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΠ»Π°ΠΆΠΎΠΊ Β«Use Core DataΒ» ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠΎ Ρ Π½Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΠΏΡΡΡΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ , Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Xcode. ΠΠ°Π²Π°ΠΉΡΠ΅ Π΅Π΅ ΠΎΡΠΊΡΠΎΠ΅ΠΌ ΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠ΅ΡΠ° Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΎΡ ΠΊΠΎΠ½ΡΡΠ°Π³Π΅Π½ΡΠΎΠ² Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ»ΡΠ³. ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, Π½ΠΎ Π² Π½Π΅ΠΌ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ, ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΠΈ ΠΏΡΠΈΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Ρ Core Data. ΠΡΠ°ΠΊ, Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ Π΄Π²Π° ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ°: Β«ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΈΒ» ΠΈ Β«Π£ΡΠ»ΡΠ³ΠΈΒ», ΠΈ ΠΎΠ΄ΠΈΠ½ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Β«ΠΠ°ΠΊΠ°Π·Β», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ»ΡΠ³.
Π’Π΅ΡΠΌΠΈΠ½Ρ Β«Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΒ» ΠΈ Β«ΠΠΎΠΊΡΠΌΠ΅Π½ΡΒ» Ρ Π²Π·ΡΠ» ΠΈΠ· ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Β«1Π‘: ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅Β», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠ½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Core Data. Π‘Ρ ΠΎΠΆΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ (ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ²/Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²), Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ΅. Π― Π±Ρ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ Β«1Π‘: ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅Β» β ΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Core Data.
ΠΠ°Π΄Π½ΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ²ΠΎΠ΅ Β«1Π‘: ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅Β» Ρ Π±Π»ΡΠΊΠ΄ΠΆΠ΅ΠΊΠΎΠΌ ΠΈ Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ!
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ²
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Ρ Π‘Π£ΠΠ:
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ Π²Π°ΠΆΠ½Π°Ρ ΡΠ°ΡΡΡ β ΠΠ½ΡΠΏΠ΅ΠΊΡΠΎΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ , Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π΅Π³ΠΎ ΡΠΏΡΠ°Π²Π° ΠΎΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ . Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ, Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ (ΡΠΆ ΠΏΡΠΎΡΡΠΈΡΠ΅ Π·Π° ΡΠ°Π²ΡΠΎΠ»ΠΎΠ³ΠΈΡ), Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π΅ΠΉ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΊΠ°ΠΊ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ, Π»ΠΈΠ±ΠΎ Π·Π°Π΄Π°ΡΡ Π΄Π»Ρ Π½Π΅Π΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΡΡ ΡΡΡΠ½ΠΎΡΡΡ (ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ΅Π»ΠΎΠΌ Π² ΠΠΠ).
ΠΠ»Ρ Π°ΡΡΠΈΠ±ΡΡΠ° ΡΡΡΠ½ΠΎΡΡΠΈ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° Π°ΡΡΠΈΠ±ΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π½ΠΈΠΆΠ½ΡΡ ΠΈ/ΠΈΠ»ΠΈ Π²Π΅ΡΡ Π½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ, Π΄Π»Ρ Π΄Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½. Π’Π°ΠΊΠΆΠ΅ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠΈΠΏΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ°ΠΆΠ½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ Π°ΡΡΠΈΠ±ΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Optional (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ). Π‘ΠΌΡΡΠ» Ρ Π½Π΅Π³ΠΎ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Swift: Π΅ΡΠ»ΠΈ Π°ΡΡΠΈΠ±ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ Optional, ΡΠΎ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ, ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, β Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠΌΠ΅ΡΠΊΠΈ Π½Π΅Ρ β Π·Π°ΠΏΠΈΡΡ ΡΡΡΠ½ΠΎΡΡΠΈ Π±ΡΠ΄Π΅Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π²ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΎΡΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, Π°ΡΡΠΈΠ±ΡΡ name Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ (Π½Π°Π΄ΠΎ ΡΠ½ΡΡΡ ΡΠ»Π°ΠΆΠΎΠΊ Optional), ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊ Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ Π»ΠΈΡΠ΅Π½ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Β«ΠΠ°ΠΊΠ°Π·Β»
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Β«ΠΠ°ΠΊΠ°Π·Β» β Π·Π΄Π΅ΡΡ Π²ΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΎΠ΄Π½ΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ Ρ Π½Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ»ΡΠ³, Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ»ΡΠ³ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ²ΠΎΡ ΡΡΠΌΠΌΠ°, ΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π΄Π²ΡΠΌΡ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ:
ΠΠ°ΡΠ½Π΅ΠΌ Ρ Β«ΡΠ°ΠΏΠΊΠΈΒ» Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° β ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΡ ΡΡΡΠ½ΠΎΡΡΡ Β«OrderΒ» ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΠΈ Π°ΡΡΠΈΠ±ΡΡΠ° (Π·Π΄Π΅ΡΡ Π²ΡΠ΅ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠΎ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ):
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ Optional. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΠΠ½ΡΠΏΠ΅ΠΊΡΠΎΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ:
Type (ΡΠΈΠΏ ΡΠ²ΡΠ·ΠΈ)
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΡΠΎ ΡΡΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π²Π°ΠΌ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π·Π½Π°ΠΊΠΎΠΌΠΎ. ΠΠ΄Π΅ΡΡ Π½Π°ΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π½Π° Π²ΡΠ±ΠΎΡ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°: To One ΠΈ To Many. To One β ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π°Ρ ΠΠ°ΠΊΠ°Π· ΡΠ²ΡΠ·Π°Π½ ΠΊ ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ, To Many β Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°ΠΌΠΈ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°Π΄ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β To One.
Delete Rule (ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ)
ΠΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, Π·Π΄Π΅ΡΡ Π½Π°Π΄ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ Π² ΡΠΎΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Π°Ρ ΡΠ²ΡΠ·Ρ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ:
Inverse (ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ)
ΠΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ²ΡΠ·Ρ Β«ΠΠ°ΠΊΠ°Π·Π°Β» Ρ Β«ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌΒ», Π½ΠΎ Β«ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΒ» Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΎ Β«ΠΠ°ΠΊΠ°Π·Π°Ρ Β», Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ ΡΡΠ°ΡΡΠ²ΡΠ΅Ρ. ΠΠ± ΡΡΠΎΠΌ ΠΆΠ΅ Π½Π°Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ ΠΈ Warning.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ, Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅Π²Π΅ΡΡΠΈΠ²Π½ΡΡ ΡΠ²ΡΠ·Ρ Ρ ΡΡΡΠ½ΠΎΡΡΠΈ Β«ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΒ» ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Π΅Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ. ΠΠ°Π΄ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Core Data Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅Π³Π΄Π° ΡΠ΅Π²Π΅ΡΡΠΈΠ²Π½ΡΠ΅ ΡΠ²ΡΠ·ΠΈ β ΡΠ°ΠΊ ΠΌΡ ΠΈ ΠΏΠΎΡΡΡΠΏΠΈΠΌ. Π‘ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ (Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΡΡΠΎ Warning, Π° Π½Π΅ Error), Π½ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅ΡΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈ Π·Π°ΡΠ΅ΠΌ Π²Ρ ΡΠ°ΠΊ ΠΏΠΎΡΡΡΠΏΠ°Π΅ΡΠ΅.
ΠΠ°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅! ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ Π΅Π΅ Π½Π΅Π»ΡΠ·Ρ ΠΌΠ΅Π½ΡΡΡ β ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Core Data Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠΎΠ·Π΄Π°Π΅Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π° ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ β ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΡΡΡΡΠΊΡΡΡΠ° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ , ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎ). ΠΠ°ΠΊ ΠΆΠ΅ Π±ΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ β Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Core Data, ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΠ΅ΠΌΠ° ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΈ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ Π΅Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ. ΠΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΠΈΠ»ΠΈ ΡΠΌΡΠ»ΡΡΠΎΡΠ°), Π° ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Core Data ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΌΠ΅ΡΡΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° Π΅Π΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΠ΅ Editor Style ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ (Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΠΈΠ·Ρ) Π² ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Graph.
ΠΡ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π½Π°ΠΌΠΈ ΡΡΡΠ½ΠΎΡΡΠΈ Ρ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ ΠΈ Π²ΡΠ΅ ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΠΈ Π² Π²ΠΈΠ΄Π΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ. ΠΠΈΠ½ΠΈΡ Ρ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΎΠΉ Π½Π° ΠΊΠΎΠ½ΡΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ²ΡΠ·Ρ To One, Ρ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΎΠΉ β To Many. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΈΠ΄ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΌΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»ΡΡ .