
рдпрджрд┐ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХ рдорд╛рддреНрд░рд╛ рдЫреЛрдЯреА рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╢реБрд░реВ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдРрд╕рд╛ рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рднреА рд▓реЛрдбрд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдПрдХ рдмреБрд░реА рдЦрдмрд░ рд╣реИ, рдФрд░ рдЧреНрд░рд╛рд╣рдХ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдХрд┐рддрдиреЗ рд╕рдордп рд╕реЗ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ, рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рд╣рдпреЛрдЧ рдХреА рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреЛрд░ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ sqlite рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреИрд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рд╡рд┐рдЪрд╛рд░ рдХрд╛ рд╕рд╛рд░:
- рд╕рд╛рдЗрдХреНрд▓рд╛рдЗрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░реЗрдВ
- рдЗрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
(рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рдЪрд▓ рд░рд╣реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЖрдзрд╛рд░ рдпрд╣рд╛рдВ рд╣реИ: / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ /% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо% / рд▓рд╛рдЗрдмреНрд░реЗрд░реА / рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдорд░реНрдерди / iPhone рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ /% iOS рд╕рдВрд╕реНрдХрд░рдг% / рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдПрдкреНрд▓рд┐рдХреЗрд╢рди% рдХрд╛ GUID / рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ /%)
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкрд╣рд▓реЗ рд▓реЙрдиреНрдЪ рдХреЗ рджреМрд░рд╛рди, рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рди рдмрдирд╛рдПрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрджрд▓реЗрдВред
рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реАрдзреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ (xml рдлрд╝рд╛рдЗрд▓ рд╕реЗ) рдореЗрдВ рдкреЙрдкреБрд▓реЗрдЯреЗрдб рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рднрд░рдирд╛, рдмреЗрд╢рдХ, рдХрдИ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЛрд░ рдбреЗрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рдФрд░ рдЖрд▓рд╕реНрдп рдиреЗ рдореБрдЭреЗ рдРрд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ред
рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдЬрдм рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдПрдХ рдирд┐рд░реНрдмрд╛рдз рд╡рд┐рд╡рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рддреБрд░рдВрдд рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рддреБрд░рдВрдд рдХрд╣рддрд╛ рд╣реВрдВ: рдЙрджрд╛рд╣рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рд╣реИ (рдПрд╕рдбреАрдХреЗ 4.1)
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд┐рдЪрд╛рд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдиреЗрд╡рд┐рдЧреЗрд╢рди-рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдПрдВ рдЬреЛ рдХреЛрд░ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЗрд╕реЗ CoreDataExample рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рдо рдЖрдзрд╛рд░ рдХреЛ рдкреНрд░реАрдлрд╝рд┐рд▓ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВрдЧреЗред
Source.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрдиреЗ рджреЗрдВред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред
<рдИрд╡реЗрдВрдЯ >
<рдЗрд╡реЗрдВрдЯ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк = "01/16/2010" />
<рдЗрд╡реЗрдВрдЯ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк = "02/01/2010" />
<рдЗрд╡реЗрдВрдЯ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк = "03/05/2010" />
</ рдШрдЯрдирд╛рдПрдБ >
рдПрдХ рдШрдЯрдирд╛ рд╡рд░реНрдЧ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, CoreDataExample.xdatamodel рдлрд╝рд╛рдЗрд▓ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ Add-> рдирдИ рдлрд╝рд╛рдЗрд▓ рдЪреБрдиреЗрдВ ...

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рдмрдВрдзрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛

рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж, Event.m рдФрд░ Event.h рдлрд╛рдЗрд▓реЗрдВ рдЬрдирд░реЗрдЯ рд╣реЛрдВрдЧреА:
//Event.h
#import <CoreData / CoreData.h>
@interface рдШрдЯрдирд╛ : NSManagedObject
{
}
@property ( рдиреЙрдирдЯреЛрдорд┐рдХ, рд░рд┐рдЯреЗрди ) NSDate * timeStamp;
@end
//Event.m
#import "Event.h"
@ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдШрдЯрдирд╛
рдЧрддрд┐рд╢реАрд▓ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк;
@end
рдЕрдм рдПрдХ рдРрд╕реА рдХреНрд▓рд╛рд╕ рдмрдирд╛рдПрдВ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмрдЪрд╛рдПрдЧрд╛ред рдЪрд▓рд┐рдП рдЗрд╕реЗ EventRepository рдХрд╣рддреЗ рд╣реИрдВ, рдЙрд╕реА рд╕рдордп EventRepositoryDelegate рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрдирд╛рдПрдБред рд╣рдо рдЯреЗрдореНрдкрд▓реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдирд╣реАрдВ рдмрджрд▓реЗрдВрдЧреЗ, рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдХрдИ рд╕реНрд╡рддрдВрддреНрд░ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЕрдкрдиреЗ рдкреВрд░реНрд╡-рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП EventRepository рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
//EventsRepositoryDelegate.h
#import <UIKit / UIKit.h>
@protocol EventsRepositoryDelegate
@property ( рдиреЙрдирдЯреЙрдорд┐рдХ, рд░рд┐рдЯреЗрди ) NSFetchedResultsController * fetchedResultsController;
@end
//EventsRepository.m
#import <Foundation / Foundation.h>
#import "EventsRepositoryDelegate.h"
#import "Event.h"
@interface рдЗрд╡реЗрдВрдЯреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА : NSObject {
рдЖрдИрдбреА <EventRepositoryDelegate> рдкреНрд░рддрд┐рдирд┐рдзрд┐;
}
@property ( рдЕрд╕рд╛рдЗрди ) id <EventsRepositoryDelegate> рдкреНрд░рддрд┐рдирд┐рдзрд┐;
- ( рд╢реВрдиреНрдп ) saveEventWithTimeStamp : ( NSDate * ) рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк;
@end
//EventsRepository.m
#import "EventsRepository.h"
@ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╡реЗрдВрдЯреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА
@synthesize рдкреНрд░рддрд┐рдирд┐рдзрд┐;
- ( рд╢реВрдиреНрдп ) saveEventWithTimeStamp : ( NSDate * ) рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк {
NSManagedObjectContext * рд╕рдВрджрд░реНрдн = [ рдкреНрд░рддрд┐рдирд┐рдзрд┐ редfetchedResultsController ManageObjectContext ] ;
рдШрдЯрдирд╛ * рдШрдЯрдирд╛ = [ NSEntityDescription рдбрд╛рд▓реЗрдВNewObjectForEntityForName : @ "рдШрдЯрдирд╛" inManagedObjectContext : рд╕рдВрджрд░реНрдн ] ;
event.timeStamp = timeStamp;
NSError * error = nil ;
рдЕрдЧрд░ ( [ рд╕рдВрджрд░реНрдн рд╕рд╣реЗрдЬреЗрдВ : рдФрд░ рддреНрд░реБрдЯрд┐ ] ) {
NSLog ( @ "рдЕрдирдЯреНрд░реЗрд╕рд▓реНрдб рддреНрд░реБрдЯрд┐% @,% @" , рддреНрд░реБрдЯрд┐, [ рддреНрд░реБрдЯрд┐ userInfo ] ) ;
abort ( ) ;
}
[ рдШрдЯрдирд╛ рдЬрд╛рд░реА ] ;
}
@end
рд╣рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рднреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╣рдорд╛рд░реА xml рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдЧрд╛ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдмрдЪрд╛рдПрдЧрд╛ред EventXmlParser рд╡рд░реНрдЧ рдФрд░ EventsXmlParserDelegate рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрдирд╛рдПрдБред
//EventsXmlParser.h
#import <Foundation / Foundation.h>
#import "EventsXmlParserDelegate.h"
#import "Event.h"
@interface EventsXmlParser : NSObject <NSXMLParserDelegate> {)
рдЖрдИрдбреА <EventXmlParserDelegate> рдкреНрд░рддрд┐рдирд┐рдзрд┐;
}
@property ( рдЕрд╕рд╛рдЗрди ) id <EventsXmlParserDelegate> рдкреНрд░рддрд┐рдирд┐рдзрд┐;
- ( рд╢реВрдиреНрдп ) saveEventWithTimeStamp : ( NSDate * ) рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк;
@end
//EventsXmlParser.m
#import "EventsXmlParser.h"
@ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рдЗрд╡реЗрдВрдЯреНрд╕рдПрдХреНрд╕рдПрдордПрд▓рдкреИрд░
@synthesize рдкреНрд░рддрд┐рдирд┐рдзрд┐;
- ( рд╢реВрдиреНрдп ) рдкрд╛рд░реНрд╕рд░ : ( NSXMLParser * ) рдкрд╛рд░реНрд╕рд░
didStartElement : ( NSString * ) рдПрд▓рд┐рдореЗрдВрдЯрдиреЗрдо
namespaceURI : ( NSString * ) namespaceURI
QualName : ( NSString * ) рдпреЛрдЧреНрдпрдирд╛рдо
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ : ( NS рд╕рд╣рдХрд░реНрдореА * )
рдЕрдЧрд░ ( [ elementName isEqualToString : @ "рдЗрд╡реЗрдВрдЯ" ] ) {
NSDateFormatter * dateFormatter = [ [ NSDateFormatter рдЖрд╡рдВрдЯрди ] init ] ;
[ dateFormatter setDateFormat : @ "dd.MM.yyyy" ] ;
NSDate * timeStamp = [[ [ [ NSDate рдЖрд╡рдВрдЯрди ] init ] autorelease ] ;
timeStamp = [ dateFormatter dateFromString : ( NSString * ) [ FeatureDict objectForKey : @ "timeStamp" ] ] ;
[ рдбреЗрд▓реАрдЧреЗрдЯ.рд╡реЗрдЯрд░реНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗрд╡рдЗрд╡реЗрдВрдЯрд╡рд┐рдердЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк : рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк ] ;
[ рддрд╛рд░реАрдЦ рдкреНрд░рджрд░реНрд╢рди рдЬрд╛рд░реА ] ;
}
}
- ( рд╢реВрдиреНрдп ) рдбреАрд▓рд▓реЛрдХ {
[ рд╕реБрдкрд░ рдбреАрд▓реЙрдХ ] ;
}
@end
//EventsXmlParserDelegate.h
#import <UIKit / UIKit.h>
#import "EventsRepository.h"
@protocol EventsXmlParserDelegate
@property ( рдиреЙрдирдЯреЛрдорд┐рдХ, рд░рд┐рдЯреЗрди ) рдЗрд╡реЗрдВрдЯреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА * рдЗрд╡реЗрдВрдЯреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА;
@end
рдпрд╣ рд░реВрдЯрд╡реНрдпреВрдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рд╣рдорд╛рд░реЗ рдирдП рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реА рдмрдирд╛ рд╣реБрдЖ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд░реВрдЯрд╡реНрдпреВрдХрдВрдЯреНрд░реЛрд▓рд░ рд╣рдорд╛рд░реЗ рджреЛрдиреЛрдВ рдирдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдкреНрд░реЙрдкрд░реНрдЯреА рдЗрд╡реЗрдВрдЯреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЬреЛрдбрд╝реЗрдВред
// рд╕рдВрдкреВрд░реНрдг рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ RootViewController.h
#import <UIKit / UIKit.h>
#import <CoreData / CoreData.h>
#import "EventsXmlParserDelegate.h"
#import "EventsRepositoryDelegate.h"
#import "EventsXmlParser.h"
#import "EventsRepository.h"
@interface RootViewController : UITableViewController <NSFetchedResultsControllerDelegate, EventsXmlParserDelegate, EventsRepositoryDelegate> {
@private
NSFetchedResultsController * fetchedResultsController_;
NSManagedObjectContext * рдкреНрд░рдмрдВрдзрд┐рддObjectContext_;
рдШрдЯрдирд╛рдПрдБ
}
@property ( рдиреЙрдирдЯреЙрдорд┐рдХ, рд░рд┐рдЯреЗрди ) NSManagedObjectContext * рдкреНрд░рдмрдВрдзрд┐рддObjectContext;
@property ( рдиреЙрдирдЯреЙрдорд┐рдХ, рд░рд┐рдЯреЗрди ) NSFetchedResultsController * fetchedResultsController;
@property ( рдиреЙрдирдЯреЛрдорд┐рдХ, рд░рд┐рдЯреЗрди ) рдЗрд╡реЗрдВрдЯреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА * рдЗрд╡реЗрдВрдЯреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА;
@end
// рдФрд░ рдХреНрдпрд╛ рдЖрдк рд╕рдВрдкрддреНрддрд┐ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП RootViewContorller.m рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ
...
@ рд╕рд╛рдЗрдиреЗрдереЗрд╕рд┐рд╕ рдШрдЯрдирд╛рдПрдБ
...
- ( рдЗрд╡реЗрдВрдЯреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА * ) рдИрд╡реЗрдВрдЯреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА {
рдЕрдЧрд░ ( рдШрдЯрдирд╛рдУрдВрдкреНрд░рддрд┐рдкрд╛рдж__ ! рдиреАрд▓ ) {
рд╡рд╛рдкрд╕реА рдХреА рдШрдЯрдирд╛рдУрдВ
}
рдЗрд╡реЗрдВрдЯреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА_ = [ [ рдЗрд╡реЗрдВрдЯреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдПрд▓реЛрдХреЗрд╢рди ] init ] ;
рдШрдЯрдирд╛рдПрдБ
рд╡рд╛рдкрд╕реА рдХреА рдШрдЯрдирд╛рдУрдВ
}
...
- ( рд╢реВрдиреНрдп ) рдбреАрд▓рд▓реЛрдХ {
[ рдИрд╡реЗрдВрдЯреНрд╕ рд░рд┐рдкреЛрд╕рд┐рдЯрд░реА_ рд░рд┐рд▓реАрдЬ ] ;
[ fetchedResultsController_ release ] ;
[ ManageObjectContext_ рд░рд┐рд▓реАрдЬрд╝ ] ;
[ рд╕реБрдкрд░ рдбреАрд▓реЙрдХ ] ;
}
рдЖрдзрд╛рд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PopulateDataBase Method рдХреЛ RootViewController рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ viewDidLoad рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВред
- ( рд╢реВрдиреНрдп ) populateDataBase {
NSLog ( @ "populate" ) ;
NSURL * url = [ NSURL fileURLWithPath : [ [ NSBundle mainBundle ] pathForResource : @ "рдШрдЯрдирд╛рдХреНрд░рдо" ofType : @ "xml" ] ] ;
NSXMLParser * xmlParser = [ [ NSXMLParser рдЖрд╡рдВрдЯрд┐рдд ] initWithContentsOfURL : url ] ;
рдШрдЯрдирд╛рдПрдБ
[ eventXmlParser рд╕реЗрдЯрдбреЗрд▓рдЧреЗрдЯ : рд╕реНрд╡ ] ;
[ xmlParser setDelegate : eventXmlParser ] ;
BOOL рд╕рдлрд▓рддрд╛ = [ xmlParser parse ] ;
рдЕрдЧрд░ ( рд╕рдлрд▓рддрд╛ )
NSLog ( @ "рдбреЗрдЯрд╛ рдмреЗрд╕ рдЖрдмрд╛рдж рд╣реЛ рдЧрдпрд╛ рд╣реИ" ) ;
рдЕрдиреНрдпрдерд╛
NSLog ( @ "рддреНрд░реБрдЯрд┐: рдбреЗрдЯрд╛ рдмреЗрд╕ рдЖрдмрд╛рдж рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ" ) ;
[ eventXmlParser рд░рд┐рд▓реАрдЬ ] ;
[ xmlParser рд░рд┐рд▓реАрдЬрд╝ ] ;
}
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдПрдВ - рдбреЗрдЯрд╛рдмреЗрд╕ рднрд░ рдЬрд╛рдПрдЧрд╛ред рдмрдирд╛рдИ рдЧрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд┐рд╕реЛрд░реНрд╕ рдЧреНрд░реБрдк рдореЗрдВ) (рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╣реИ / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ /% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо% / рд▓рд╛рдЗрдмреНрд░реЗрд░реА / рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдкреЛрд░реНрдЯ / iPhone рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ /% iOS рд╕рдВрд╕реНрдХрд░рдг% / рдПрдкреНрд▓рд┐рдХреЗрд╢рди /% рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛% GUID / / рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ /) рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ populateDataBase рдХреЛ рд╣рдЯрд╛ рджреЗрдВ - рд╣рдореЗрдВ рдЕрдм рдЙрдирдХреЗ xml рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдзрд╛рд░ рдХреЛ рдкреВрд░реНрд╡-рдЖрдмрд╛рдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдЗрдП рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдк / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ /% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо% / рд▓рд╛рдЗрдмреНрд░реЗрд░реА / рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдорд░реНрдерди / iPhone рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ /% iOS рд╕рдВрд╕реНрдХрд░рдг% / рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдзрдорд╛рдХрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдмрд╛рдПрдВ рдмрдЯрди рджрдмрд╛рдП рд░рдЦреЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдЗрд╕реЗ рдЬрд╛рд░реА рдХрд░реЗрдВ, рдЬрдм рдЖрдЗрдХрди рдореЗрдВ рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдкреНрд░рдХрдЯ рдХреНрд░реЙрд╕ - рд╣рдЯрд╛рдПрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ рдЬреЛ рд╣рдордиреЗ рдЗрд╕рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдмрдирд╛рдпрд╛ рдерд╛ред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, CoreDataExampleAppDelegate рдХреНрд▓рд╛рд╕ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕реНрдЯреЗрдЯрд░ рдХреА рдЬрдЧрд╣ рд╕реНрдерд┐рд░ рдХрд░реЗрдВрд╕рдорд╛рд░реЛрд╣рдХрд░реНрддрд╛ рдЧреЗрдЯреНрдЯрд░
NSURL * storeURL = [ NSURL fileURLWithPath : [ [ рд╕реЗрд▓реНрдл рдПрдкреНрд▓реАрдХреЗрд╢рдирдбрд╛рдпрд░реЗрдХреНрдЯрдореЗрдВрдЯреНрд╕рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА ] stringByAppendingPathComponent : @ "CoreDataExample.sqlite" ] ;
рдкрд░
NSString * storePath = [ [ self applicationDocumentsDirectory ] stringByAppendingPathComponent : @ "CoreDataExample.sqlite" ] ;
NSFileManager * fileManager = [ NSFileManager defaultManager ] ;
рдЕрдЧрд░ ( [ fileManager fileExistsAtPath : storePath ] ) {
NSString * defaultStorePath = [ [ NSBundle mainBundle ] pathForResource : @ "CoreDataExample" рдЯрд╛рдЗрдк : @ "sqlite" ] ;
рдЕрдЧрд░ ( defaultStorePath ) {
[ fileManager copyItemAtPath : defaultStorePath toPath : storePath рддреНрд░реБрдЯрд┐ : NULL ] ;
}
}
NSURL * storeURL = [ NSURL fileURLWithPath : storePath ] ;
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рддрд░реАрдХрд╛ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЦреБрд╢реА рд╣реЛрдЧреАред