рдХреЛрд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рдкреНрд░реАрдлрд┐рд▓

рдЫрд╡рд┐ рдЕрдХреНрд╕рд░, iPhone / iPad рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреБрдЫ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ" рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдРрдкреНрдкрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреВрд░реНрд╡-рдЖрдмрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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



рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреЛрд░ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ 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 ] ;




рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рддрд░реАрдХрд╛ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЦреБрд╢реА рд╣реЛрдЧреАред






All Articles