рд╕рд┐рдВрдЧрд▓рдЯрди (рдХрд╛рд░реНрд▓реЛ рдЪреБрдВрдЧ рджреНрд╡рд╛рд░рд╛ "рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди" рдкреБрд╕реНрддрдХ рд╕реЗ "рд╕рд┐рдВрдЧрд▓рдЯрди" рдХреЗ рдЕрдВрдЧреНрд░реЗрдЬреА рдЕрдзреНрдпрд╛рдп рд╕реЗ рдЕрдиреБрд╡рд╛рджрд┐рдд)

рдЧрдгрд┐рдд рдФрд░ рддрд░реНрдХ рдореЗрдВ, рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЛ "рдПрдХ рд╕реЗрдЯ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рддрддреНрд╡ рд╣реЛрддрд╛ рд╣реИ," рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдмреИрдЧ рдХрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реИ, рд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдо рдЧреЗрдВрдж рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдПрдХ рд╣реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЛ рдХрд┐рди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ? рдЙрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдХрд▓ рдЬреАрдкреАрдПрд╕ рдореЙрдбреНрдпреВрд▓ iPhone рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рд╡рд╣ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред CLLocationManager рдврд╛рдВрдЪреЗ рд╕реЗ CLLocationManager рд╡рд░реНрдЧ рд╕рднреА рдЬреАрдкреАрдПрд╕ рдореЙрдбреНрдпреВрд▓ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реИ: рдпрджрд┐ рдЖрдк CLLocationManager рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЬреАрдкреАрдПрд╕ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдпрд╣ рдПрдХ рдХрд▓реНрдкрдирд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ - рдЖрдкрдиреЗ рдПрдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреА рдХреАрдордд рдХреЗ рд▓рд┐рдП рджреЛ рдЬреАрдкреАрдПрд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдмрдирд╛рдПред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдкрдХреЛ рдЕрднреА рднреА рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЬреАрдкреАрдПрд╕ рдорд┐рд▓рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдИрдлреЛрди рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЬреАрдкреАрдПрд╕ рд╣реИ, рдЬреЛ рдЙрдкрдЧреНрд░рд╣реЛрдВ рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдмрдВрдз рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдПрдХ рд╕реБрдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЬреАрдкреАрдПрд╕ рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреАрдВрдЧ рдорд╛рд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рджреЛ рдмрд╛рд░ рд╕реЛрдЪреЗрдВред

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

рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди рдХреНрдпрд╛ рд╣реИ?

рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкреИрдЯрд░реНрди рд╣реИред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд░реНрдЧ рд╡рд╕реНрддреБ рдХреЛ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдХрдХреНрд╖рд╛ рдХреЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдлрд╝реИрдХреНрдЯрд░реА рд╡рд┐рдзрд┐ (рдЕрдзреНрдпрд╛рдп 4) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрдерд┐рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдФрд░ рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред рдЪрд┐рддреНрд░ 7-1 рдПрдХрд▓ рд╡рд░реНрдЧ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рдЫрд╡рд┐
рдЪрд┐рддреНрд░ 7-1ред рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди рдХреА рд╕реНрдерд┐рд░ рд╕рдВрд░рдЪрдирд╛ред

рдПрдХ рд╕реНрдЯреИрдЯрд┐рдХ uniqueInstance рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рдХреНрд▓рд╛рд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╕реНрдЯреИрдЯрд┐рдХ sharedInstance рд╡рд┐рдзрд┐ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд▓реМрдЯрд╛рдПрдЧрд╛ред рдЖрдорддреМрд░ рдкрд░ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ uniqueInstance ред рдпрджрд┐ рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рддреЛ uniqueInstance рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд▓реМрдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдзрд┐ рдЗрд╕реЗ рдмрдирд╛рдПрдЧреАред

рдиреЛрдЯред рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди: рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрдХреНрд╖рд╛ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХрд▓ рдПрдХреНрд╕реЗрд╕ рдкреНрд╡рд╛рдЗрдВрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред *
* рдореВрд▓ рдкрд░рд┐рднрд╛рд╖рд╛ рдЧреЛрдл рдХреЗ "рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди" (рдПрдбрд┐рд╕рди-рд╡реЗрд╕реНрд▓реЗ,) рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд
1994)ред

рдореИрдВ рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛

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

рд╡рд░реНрдЧ рд╡рд┐рдзрд┐ рдЕрдкрдиреА рд╡рд╕реНрддреБ рдмрдирд╛рдП рдмрд┐рдирд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдПрдХ рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╡рд░реНрдЧ рд╡рд┐рдзрд┐ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рд▓рдЪреАрд▓реЗрдкрди рдХреА рдХрдореА рд╣реИ рдпрджрд┐ рд╡рд░реНрдЧ рдХреЛ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

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

рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ рд╕рд┐рдВрдЧрд▓рдЯрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рд╕рд┐рдВрдЧреНрд▓рдЯрди рд╡рд░реНрдЧ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рдХреБрдЫ рд╣реИред рдкрд╣рд▓рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ рдХрдХреНрд╖рд╛ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рднрд╛рд╖рд╛рдУрдВ, рдЬреИрд╕реЗ C ++ рдФрд░ Java рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ, рдХреНрд▓рд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдирд┐рдЬреА рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдХреЛрдИ рднреА рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рд╡рд┐рдзрд┐ рдЦреБрд▓реА рд╣реИ, рдФрд░ рднрд╛рд╖рд╛ рд╕реНрд╡рдпрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рднреА рд╡рд░реНрдЧ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдВрдЪ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИ (рд╡рд┐рдзрд┐ рдХреЙрд▓ + рд╕реА рдФрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ) (рдХреЗрд╡рд▓ рд╕рдВрдХрд▓рдХ рдЪреЗрддрд╛рд╡рдиреА рдЕрдЧрд░ рд╡рд┐рдзрд┐ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ)ред рдХреЛрдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ (рдХреЛрдХреЛ рдЯрдЪ рд╕рд╣рд┐рдд) рднреА рд╕реНрдореГрддрд┐ рдореЗрдВ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдЧрд┐рдирддреА рджреНрд╡рд╛рд░рд╛ рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрди рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдореЗрдВ рд╕рд┐рдВрдЧрд▓рдЯрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдХрдард┐рди рдмрдирд╛ рджреЗрддрд╛ рд╣реИред
рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЗ рдореВрд▓ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди C ++ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 7-1 рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛ред

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 7-1ред рдкреБрд╕реНрддрдХ рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рд╕реЗ рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди рдХрд╛ рдПрдХрд▓ рд╕реА ++ рдЙрджрд╛рд╣рд░рдгред

 class Singleton { public: static Singleton *Instance(); protected: Singleton(); private: static Singleton *_instance; }; Singleton *Singleton::_instance = 0; Singleton *Singleton::Instance() { if (_instance == 0) { _instance = new Singleton; } return _instance; } 

рдЬреИрд╕рд╛ рдХрд┐ рдкреБрд╕реНрддрдХ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ, рд╕реА ++ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд░рд▓ рдФрд░ рд╕реАрдзрд╛ рд╣реИред рд╕реНрдЯреИрдЯрд┐рдХ _instance Instance() рд╡рд┐рдзрд┐ рдореЗрдВ, рд╕реНрдерд┐рд░ _instance рд╡реЗрд░рд┐рдПрдмрд▓ _instance 0 ( NULL ) рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдХрд┐рдпрд╛ _instance рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдПрдХ рдирдпрд╛ Singleton рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рд╕рдВрд╕реНрдХрд░рдг рдЖрдкрдХреЗ рднрд╛рдИ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ 7-2 рдФрд░ 7-3 рдХреА рд╕реВрдЪреА рдореЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 7тАУ2ред рд╕рд┐рдВрдЧрд▓рдЯрди рдореЗрдВ рд╕рд┐рдВрдЧреНрд▓рдЯрди рд╡рд░реНрдЧ рдХреА рдШреЛрд╖рдгрд╛

 @interface Singleton : NSObject { } + (Singleton *) sharedInstance; @end 

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 7-3ред рд╕рд╛рдЭрд╛рдХрд░рдг рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рд╕рд┐рдВрдЧрд▓рдЯрди рд╡рд┐рдзрд┐

 @implementation Singleton static Singleton *sharedSingleton_ = nil; + (Singleton *) sharedInstance { if (sharedSingleton_ == nil) { sharedSingleton_ = [[Singleton alloc] init]; } return sharedSingleton_; } @end 

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

7-4 рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреЛрдб рдХрд╛рдлреА рд▓рдВрдмрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рднрд╛рдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝ рджреЗрдВрдЧреЗред

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 7-4ред рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдореЗрдВ рд╕рд┐рдВрдЧреНрд▓рдЯрди рдХрд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

 #import "Singleton.h" @implementation Singleton static Singleton * sharedSingleton_ = nil; + (Singleton*) sharedInstance { if (sharedSingleton_ == nil) { sharedSingleton_ = [[super allocWithZone:NULL] init]; } return sharedSingleton_; } 


sharedInstance рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрджрд░, рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдПрдХ рдирдпрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рдпрд╣ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП [[super allocWithZone:NULL] init] рдХреЛ [[super allocWithZone:NULL] init] рдХрд░рддрд╛ рд╣реИред рдХреНрдпреЛрдВ super , self рдирд╣реАрдВ? рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдореЗрдВ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЗ рдУрд╡рд░рд░рд╛рдЗрдб рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ "рдЙрдзрд╛рд░ рджреЗрдиреЗ" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, NSObject , рд╣рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рджрд┐рдирдЪрд░реНрдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

 + (id) allocWithZone:(NSZone *)zone { return [[self sharedInstance] retain]; } - (id) copyWithZone:(NSZone*)zone { return self; } 


рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ Singleton рдХреНрд▓рд╛рд╕ рдореЗрдВ рдореЗрдореЛрд░реА рдореИрдиреЗрдЬрдореЗрдВрдЯ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред allocWithZone:(NSZone *)zone рд╡рд┐рдзрд┐ рдмрд╕ рдЙрд╕ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИ рдЬреЛ sharedInstance рд╡рд┐рдзрд┐ рд╕реЗ рд╡рд╛рдкрд╕ sharedInstance рд╣реИред рдХреЛрдХреЛ рдЯрдЪ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ, рдЬрдм рдЖрдк рдХреНрд▓рд╛рд╕ рдореЗрдердб рдХреЛ allocWithZone:(NSZone *)zone рдХрд░рддреЗ рд╣реИрдВ рддрдм allocWithZone:(NSZone *)zone рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдХреЛ рдЖрдмрдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рдХрд╛ рд╕рдВрджрд░реНрдн рдХрд╛рдЙрдВрдЯрд░ 1 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдордиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ alloc рд╡рд┐рдзрд┐ alloc рдЙрдкрдпреЛрдЧ рдХрдИ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЙрд▓ рдЖрд╡рдВрдЯрди рдЖрд╡рдВрдЯрд┐рдд allocWithZone: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NULL рдкрд░ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдЬрд╝реЛрди рдХреЗ рд╕рд╛рдеред рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдореЗрдореЛрд░реА рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЗрд╕ рдкреБрд╕реНрддрдХ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред рдЖрдк рдЖрдЧреЗ рдХреЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕реА рддрд░рд╣, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП copyWithZone:(NSZone*)zone рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, self ред

 - (id) retain { return self; } - (NSUInteger) retainCount { return NSUIntegerMax; // ,       } - (void) release { //    } - (id) autorelease { return self; } @end 


рдЕрдиреНрдп рддрд░реАрдХреЗ, рдЬреИрд╕реЗ рдХрд┐ autorelease , release рдФрд░ autorelease , рдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ self рд╡рд╛рдкрд╕реА рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рд╕рдВрджрд░реНрдн-рдЧрдгрдирд╛ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдореИрдиреЗрдЬрдореЗрдВрдЯ рдореЙрдбрд▓ рдореЗрдВ)ред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдХреЗ рд▓рд┐рдП рд╕реНрдореГрддрд┐ рд╕реЗ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рд╕реЗ рдЖрд╡реГрддреНрддрд┐ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП retainCount рд╡рд┐рдзрд┐ NSUIntegerMax (4,294,967,295) рджреЗрддрд╛ рд╣реИред

рдХреЙрд▓ рд░рд┐рдЯреЗрди рд╕рд┐рдВрдЧреНрд▓рдЯрди рдХреНрдпреЛрдВ?
рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо рд╕рд┐рдВрдЧрд▓рдЯрди рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ sharedInstance рдХреЛ allocWithZone: рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ sharedInstance рд╡рд┐рдзрд┐ рд╕реЗ allocWithZone: retain ред рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреНрд▓рд╛рд╕ рдХреЛ рдХрдо "рд╕рдЦреНрдд" рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛрдЧрд╛ (рдЕрд░реНрдерд╛рдд, рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдлреИрдХреНрдЯреНрд░реА рд╡рд┐рдзрд┐ sharedInstance рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИ рдпрд╛ рд╕рд┐рдВрдЧрд▓рдЯрди рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЙрдкрд╡рд░реНрдЧ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдореЗрдореЛрд░реА рдкреНрд░рдмрдВрдзрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ retain , release рдФрд░ autorelease рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдмрд╛рдж рдореЗрдВ "NSFileManager рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди рдХреЗ рдПрдХ рд▓рдЪреАрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред

рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди рдХреНрдпрд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ, рдзреНрдпрд╛рди рд╕реЗ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдмрд╛рдд рд╣реИред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдореВрд▓ Singleton рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред

рд╕рд┐рдВрдЧрд▓рдЯрди рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕

alloc рдХреЙрд▓ рдХреЛ super рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП NSObject рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдзреНрдпрд╛рди NSObject ред рдпрджрд┐ рд╣рдо рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ Singleton рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рд▓реМрдЯрд╛ рд╣реБрдЖ рдЙрджрд╛рд╣рд░рдг рд╣рдореЗрд╢рд╛ Singleton рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрдЧрд╛ред рдХреНрдпреЛрдВрдХрд┐ Singleton рд╡рд░реНрдЧ рд╕рднреА рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рддрд░реАрдХреЛрдВ рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВ; рдЖрдк рдЕрдкрдиреЗ рд╡рд░реНрдЧ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рд╕реА рднреА рд╡рд╕реНрддреБ рдХреЛ рдкрд▓рдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдлрд╛рдЙрдВрдбреЗрд╢рди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ id NSAllocateObject (Class aClass, NSUInteger extraBytes, NSZone *zone) ред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд╣рдо "рд╕рд┐рдВрдЧрд▓рдЯрди" рдирд╛рдордХ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рддреБрд░рдВрдд рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 Singleton *singleton = [NSAllocateObject ([Singleton class], 0, NULL) init]; 


рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ Singleton рд╡рд░реНрдЧ рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИред рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЗрдВрдбреЗрдХреНрд╕ рдХрд┐рдП рдЧрдП рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЪрд░ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрд╢рд╛ 0. рд╣реИред рддреАрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдЬрд╝реЛрди рдХрд╛ рдкрджрдирд╛рдо рд╣реИ; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬрд╝реЛрди рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдкреИрд░рд╛рдореАрдЯрд░ NULL )ред рдЗрд╕рд▓рд┐рдП, рдЖрдк рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреНрд▓рд╛рд╕ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВред Singleton рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдЖрдЗрдП рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ sharedInstance рд╡рд┐рдзрд┐ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 + (Singleton*) sharedInstance { if (sharedSingleton_ == nil) { sharedSingleton_ = [[super allocWithZone:NULL] init]; } return sharedSingleton_; } 


рдпрджрд┐ рдЖрдк рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП NSAllocateObject рд╕рд╛рде рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдмрди рдЬрд╛рдПрдЧрд╛:

 + (Singleton *) sharedInstance { if (sharedSingleton_ == nil) { sharedSingleton_ = [NSAllocateObject([self class], 0, NULL) init]; } return sharedSingleton_; } 


рдЕрдм рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╣рдо Singleton рдХреНрд▓рд╛рд╕ рдпрд╛ рдЙрд╕рдХреЗ рдХрд┐рд╕реА рднреА рдЙрдкрд╡рд░реНрдЧ рдХреЛ рдЗрдВрд╕реНрдЯреЗрдВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд░реЗрдЧрд╛ред

рдзрд╛рдЧрд╛ рд╕реБрд░рдХреНрд╖рд╛

рдЙрджрд╛рд╣рд░рдг рдореЗрдВ Singleton рд╡рд░реНрдЧ рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдереНрд░реЗрдб рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ @synchronized() рдмреНрд▓реЙрдХ рдпрд╛ NSLock рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдХреЗ рдЖрд╕рдкрд╛рд╕ nil рдЪреЗрдХ рдХреЗ рд▓рд┐рдП sharedSingleton_ рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрджрд┐ рдХреЛрдИ рдЕрдиреНрдп рдЧреБрдг рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ atomic рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдХреЛрдХреЛ рдЯрдЪ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕рд┐рдВрдЧреНрд▓реЗрдЯреЛрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХреЛрдХреЛ рдЯрдЪ рдлреНрд░реЗрдорд╡рд░реНрдХ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рдПрдХрд▓ рдХреЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдЖрдПрдВрдЧреЗред рд╣рдо рдЗрд╕ рдЦрдВрдб рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ - UIApplication , UIAccelerometer рдФрд░ NSFileManager ред

UIApplication Class рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рдВрдЧрд▓рдЯрди рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ UIApplication class рд╣реИред рдпрд╣ рдЖрдИрдУрдПрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рд╕рдордиреНрд╡рдп рдХрд╛ рдПрдХ рдХреЗрдВрджреНрд░реАрдХреГрдд рдмрд┐рдВрджреБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рдЖрд╡реЗрджрди рдореЗрдВ UIApplication рдХрд╛ рдПрдХ рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдпрд╣ UIApplicationMain рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ sharedApplication рдХреНрд▓рд╛рд╕ рдХреА рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рди рдЯрд╛рдЗрдо рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрддрд╛ рд╣реИред

UIApplication рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реВрдЯрд┐рдВрдЧ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде UIControl рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЧрддрд┐рд╡рд┐рдзрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рд▓рдХреНрд╖реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ UIControl ред рдпрд╣ рд╕рднреА рдЦреБрд▓реЗ UIWindow рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд░рдЦрддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ UIApplicationDelegate рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд▓рд┐рдЧреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЬрд┐рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХрд┐рд╕реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдирд╛, рдЬреИрд╕реЗ рд▓реЙрдиреНрдЪ, рдХрдо рдореЗрдореЛрд░реА рдЕрд▓рд░реНрдЯ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдорд╛рдкреНрддрд┐ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╣реИрдВрдбрд▓рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рдЖрд╡реЗрджрди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддреЗ рд╣реИрдВред

UIAccelerometer рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдХреЛрдХреЛ рдЯрдЪ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдПрдХ рдФрд░ рдЖрдо рд╕рд┐рдВрдЧрд▓рдЯрди UIAccelerometer ред UIAccelerometer рд╡рд░реНрдЧ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ iOS рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдмрд┐рд▓реНрдЯ-рдЗрди рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рд╕реЗ рддреНрд╡рд░рдг-рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╕рджрд╕реНрдпрддрд╛ рджреЗрддрд╛ рд╣реИред рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╡рд░реНрддрдорд╛рди рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рджреЛрдиреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рдЖрдпрд╛рдореА рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдкреНрд░рдореБрдЦ рдЕрдХреНрд╖реЛрдВ рдХреЗ рд╕рд╛рде рд░реИрдЦрд┐рдХ рддреНрд╡рд░рдг рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
UIAccelerometer рд╡рд░реНрдЧ рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдПрдХрдорд╛рддреНрд░ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ sharedAccelerometer рд╡рд░реНрдЧ sharedAccelerometer рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдЕрдкрдиреА updateInterval рдкреНрд░реЙрдкрд░реНрдЯреА рдФрд░ рдЕрдкрдиреА рдЦреБрдж рдХреА рдбреЗрд▓реАрдЧреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗ рдХрд┐рд╕реА рднреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рддреНрд╡рд░рдг рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

NSFileManager рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

NSFileManager рд╡рд░реНрдЧ рдХрднреА рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ 10.5 рдФрд░ рдЖрдИрдУрдПрд╕ 2.0 рд╕реЗ рдкрд╣рд▓реЗ рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди рдХрд╛ "рдХрдареЛрд░" рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдерд╛ред рдЗрд╕рдХреА init рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ defaultManager рд╡рд░реНрдЧ defaultManager рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЪреВрдВрдХрд┐ рд╕рд┐рдВрдЧрд▓рдЯрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, NSFileManager рдЗрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NSFileManager рдирдП рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЗ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрд╛рд░рдЦрд╛рдирд╛ рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рднреА рдЪреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдирд┐рд╖реНрдХрд░реНрд╖

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

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


All Articles