рдХреНрдпрд╛ рдЖрдк рдХреЛрд░ рдбреЗрдЯрд╛ рд╕реНрдЯреИрдХ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЖрд░рдВрднреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ?



рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рдЧреМрд░ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдХрд┐рд╕реА рднреА рдкрд╕рдВрджреАрджрд╛ рдЖрдИрдУрдПрд╕ рдРрдк рдиреЗ рдЕрдЧрд▓реЗ рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдЖрдзреЗ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рд╣реБрдЖ рд╣реИ? рдЖрдорддреМрд░ рдкрд░ рдЙрд╕рдХреЗ рдмрд╛рдж, рдЙрдирдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдПрдХ рдЬрд░реВрд░реА рдмрдЧрдлрд┐рдХреНрд╕ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рдЕрдВрддрд┐рдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдХреЛрдб рдореЗрдВ рдмрдЧ рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдХрднреА-рдХрднреА рд╕рдорд╕реНрдпрд╛ рдереЛрдбрд╝реА рдЧрд╣рд░реА рд╣реЛрддреА рд╣реИред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рдЕрдХреНрд╕рд░ рд╣реЛрддреА рд╣реИ (рдФрд░ "рдЧрдВрднреАрд░" рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП), рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╡реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреБрдк рд╣реИрдВред
рдпрд╣ рдЖрд▓реЗрдЦ iOS рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ CoreData рд╕реНрдЯреИрдХ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╕рдордп рдПрдХ рдорд╛рдирдХ рддреНрд░реБрдЯрд┐ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдЧрд╛ред

CoreData рдврд╛рдВрдЪрд╛ рдХреЛрдХреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ, рд▓рдЧрднрдЧ рдореБрдХреНрдд рджреГрдврд╝рддрд╛, рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдореЗрдВ рдЖрд╕рд╛рдиреА, рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ, рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд░реНрдерди, рдореЙрдбрд▓ рд╕реЗ рдореЙрдбрд▓ рдореЗрдВ рдкреНрд░рд╡рд╛рд╕рди - рдпрд╣ рд╕рдм рдЕрдХреНрд╕рд░ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдХреЛрдИ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдХреЛрдИ рдЗрд╕реЗ рдмрд╣реБрдд рдХрдо рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрддрдиреЗ рдЫреЛрдЯреЗ рдЪрдпрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдЗрд╕реЗ рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рддреБрд░рдВрдд рдпрд╣ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рддреАрди рдХрд╛рд░рдгреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛, рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдореЗрдВ рдХреЛрд░рдбреЗрдЯрд╛ рд╕реНрдЯреИрдХ рдХрд╛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди, рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрди рд╕рднреА рдХреЛ рдХрд┐рддрдиреА рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдХрд╛рд░рдг # 1ред рдмрдбрд╝реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░

рдЬрдм "рдкреВрд░реНрдг" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдзрд╛рд░ рдХрд╛ рдЖрдХрд╛рд░ рдХреГрддреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдЕрд╕реАрдорд┐рдд рд╣реИ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░, рд▓реЛрдЧ рдЕрднреА рднреА рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╡реИрд╕реЗ, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдХреЛрд░рдбрд╛рдЯрд╛ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд▓рдЧрднрдЧ рд╕рдорд╛рдирд╛рд░реНрдереА рд╣реЛрдВрдЧреЗ)ред Stackoverflow рджрд░реНрд╢рдХреЛрдВ рдХреА рдордВрдЬреВрд░реА рд╣реИ рдХрд┐ рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдп рдЬрд╡рд╛рдм рд╣реИ рдХрд┐ рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рддрдХ рдПрдХ рддрд╕реНрд╡реАрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЗрд╕реЗ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╕реБрдЭрд╛рд╡ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ stackoverflow.com/questions/2573072/coredata-store-images-to-db-or-not

рдЬрд╡рд╛рдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

<100kb рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ
рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд▓реЛрдбрд┐рдВрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдмрдВрдз рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝реА рдПрдХ рдЕрд▓рдЧ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ <1mb рд╕реНрдЯреЛрд░
> рдбрд┐рд╕реНрдХ рдкрд░ 1mb рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдХреЛрд░ рдбреЗрдЯрд╛ рдХреЗ рдЕрдВрджрд░ рджреЗрдЦреЗрдВ

рдпрд╛ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдкрдХреЗ рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреЛ рдкрд┐рдЫрд▓реЗ рддреАрди рд╡рд░реНрд╖реЛрдВ (рдореИрд╕реЗрдВрдЬрд░, рдИрдореЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдмрдбрд╝реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред

рдХрд╛рд░рдг рд╕рдВрдЦреНрдпрд╛ 2ред рдореБрдЦреНрдп рд╕реВрддреНрд░ рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ

рдЦреИрд░, рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрджреЗрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рдЧрднрдЧ 100% рдирд╡рд╛рдЧрдВрддреБрдХ рдФрд░ рдмрд┐рд▓реНрдХреБрд▓ 70% рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреНрд░рд╡рд╛рд╣ рдореЗрдВ рдкреВрд░реЗ рдХреЛрд░рдбреЗрдЯрд╛ рд╕реНрдЯреИрдХ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд░рдЦрддреЗ рд╣реИрдВред

рдХрд╛рд░рдг рд╕рдВрдЦреНрдпрд╛ 3ред рдПрдХ рдирдП рдбреЗрдЯрд╛ рд╕реНрдХреАрдорд╛ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдЖрдорддреМрд░ рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ (рдореЙрдбрд▓) рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп, рдпрджрд┐ рдЖрдк рдЙрдЪрд┐рдд рдирд┐рдпрдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрд░рдбреЗрдЯрд╛ рдкреБрд░рд╛рдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдирдП рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрдерд╛рдХрдерд┐рдд рд▓рд╛рдЗрдЯрд╡реЗрдЯ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЖрд╕рд╛рди рд╣реИ, рдЖрдкрдХреЛ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЛ NSPersistentStoreCoordinator рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп рд╡рд┐рдХрд▓реНрдк рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

NSDictionary *optionsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil]; [_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:optionsDictionary error:&error]; 


рдпрджрд┐ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╣рд▓реНрдХреЗ рдкреНрд░рд╡рд╛рд╕ рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЙрдирдХреЗ рдХрд╕реНрдЯрдо рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдХрд╛рд░рдг рд╕рдВрдЦреНрдпрд╛ 3 рдХрд╛ рд╕рд╛рд░ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред

рдХрд╛рд░рдг рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП


рдХрд╛рд░рдг рд╕рдВрдХрд▓рд┐рдд рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рд╣реИ рдирд╛? рдареАрдХ рд╣реИ, рдмрд╕ рдЗрди рдХрд╛рд░рдгреЛрдВ рдХреЛ рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдмрд╛рд░ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЧрдарди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЖрд░рдВрднреАрдХрд░рдг рдХреЛрдб рдбрд╛рд▓рд╛ рдерд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдП рдЬрдм рддрдХ рдХрд┐ рд╡реЗ рдЖрдИрдЯреНрдпреВрдиреНрд╕ рдкрд░ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рджреЗрдЦрддреЗ рдереЗ:

, !

203 203


рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ?


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рд╕рднреА рдХрд╛рд░рдг рдЖрдкрдХреЛ рдПрдХ рд╕рд░рд▓ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдФрд░ рд╡рд╣ рд╡рдлрд╛рджрд╛рд░ рд╣реИ! рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬрд┐рддрдирд╛ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рд╣рдо рд╕рд░рд▓ рдирдХрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦреЗрддреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рдЕрдбрд╝рдЪрди рдХрд╛ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ - рдпрд╣ NSPersistentStoreCoordinator рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рд╕реНрдЯреЛрд░реЗрдЬ рдХрд╛ рдХрдиреЗрдХреНрд╢рди рд╣реИред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдХрд╛рд░рдг рдПрдХ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрджрд┐ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди 30 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред

рдирд┐рд░реНрдгрдп


рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдЖрдк рдПрдХ NSPersistentStoreCoordinator рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рднрдВрдбрд╛рд░рдг рдХреЛ рджреВрд╕рд░реЗ рдзрд╛рдЧреЗ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдбреЗрдЯрд╛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд╕рдордп, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢рд┐рд▓рд╛рд▓реЗрдЦ "рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ" рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЯреЛрди рд╣реИред

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдореЗрдВ рдХреИрд╕реЗ рджрд┐рдЦреЗрдЧрд╛ (рдореИрдВ рддреБрд░рдВрдд рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╕рдорд╛рдзрд╛рди рд╕рд╣реА рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ рдмреЗрд╣рддрд░ рд╕рдордЭрддрд╛ рд╣реИ, рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ)ред

 //     GUI    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.launchOptions = launchOptions; [self performSelectorInBackground:@selector(initCoreData) withObject:nil]; [NSThread sleepForTimeInterval:0.2]; // ,       ,    .        [self initialDisplayGUI]; return YES; } - (void)initialDisplayGUI { if (self.dataIsReady) { [self diplayAllGUIStuff]; } else { self.dataPrepareController = [[MigrationProgressViewController alloc] init]; [dataPrepareController setDoneTarget:self withAction:@selector(diplayAllGUIStuff)]; dataPrepareController.view.frame = window.frame; [window addSubview:dataPrepareController.view]; [window makeKeyAndVisible]; } } - (void)initCoreData { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; if (self.persistentStoreCoordinator) { NSLog(@"Storage was added"); } self.dataIsReady = YES; [pool release]; } - (void)setDataIsReady:(BOOL)dataIsReady { if (_dataIsReady != dataIsReady) { _dataIsReady = dataIsReady; [self performSelectorOnMainThread:@selector(diplayAllGUIStuff) withObject:nil waitUntilDone:NO]; } } 


-diplayAllGUIStuff рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдб рд╣реИ - (BOOL) рдЕрдиреБрдкреНрд░рдпреЛрдЧ: didFinishLaunchingWithOptions:

MigrationProgressViewController рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢реЗрд╖ рд╕рдордп рдХреЗ рд╕рдВрдХреЗрддрдХ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдпрд╣ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рдЯрдХрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░реНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рдирд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП "рд╕реНрдХреНрд░реАрди рдкрд░ рд╕реЗрд╡рд░ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ" рдирдВрдЧреЗ "UIActivityIndicatorView рдкрд░ рднреА рджреЗрдЦрдирд╛ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдЙрдирдХреЗ рд╣рд╛рдереЛрдВ рдкрд░ рдПрдХ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред

рд╢рд╛рдпрдж рдпрд╣реА рд╕рдм рд╣реИред рдРрд╕реЗ рд╕рдВрдпреЛрдЧ рд╕реЗ рдмрдЪреЗрдВ рдФрд░ рдЕрдХреНрд╕рд░ рдХреЛрдб рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд╣ рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдХреЛрдб рдбрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИред
рдЫрд╡рд┐

Source: https://habr.com/ru/post/In149266/


All Articles