IOS рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг
рднрд╛рдЧ 1. рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ?
рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрди рдЧрд╛рдЗрдб
рдкрд░рд┐рдЪрдп
рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЖрдИрдУрдПрд╕ рд╡рд┐рдХрд╛рд╕ рдХреА рдЬрд╛рджреБрдИ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрджрдо рд░рдЦрд╛, рдЬрд┐рд╕рдиреЗ рдЕрдкрдиреЗ рд╕рднреА рд╕рд╛рд░ рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдЖрдИрдЯреА рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рд╕реБрдЦрдж рднрд╡рд┐рд╖реНрдп рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ, рдореБрдЭреЗ рдмрд╣реБрдд рд╣реА рддреБрдЪреНрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдФрд░ рдЕрд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛: рдРрдкреНрдкрд▓ рдХрд╛ "рдЕрднрд┐рдирд╡ рд░реВрдврд╝рд┐рд╡рд╛рдж" рдХрднреА-рдХрднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдмрд╣реБрдд рд╣реА рдкрд░рд┐рд╖реНрдХреГрдд рдмрдирд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдмреЗрд▓рдЧрд╛рдо "WANT" рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЖрд╡реЗрджрди рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдмрдирд╛рдиреЗ рдХрд╛ рдореБрджреНрджрд╛ рд╣реИред рдореИрдВ рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╣реИрдмрд░ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдкрд░ рд╕рдорд░реНрдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рд╢реБрд░реВ рдореЗрдВ, рдореИрдВ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЬрд┐рддрдиреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рд╡рд╣ рдХрд╛рдлреА рдмрдбрд╝реА рдереАред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдХреБрдЫ рдкрд╣рд▓реБрдУрдВ рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рддрдВрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рд░ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЧрд╛рдЗрдб рдФрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрдкреЗрдХреНрд╖рд┐рдд рд╣реИрдВред рд╕рд╛рдордЧреНрд░реА рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╢реБрд░реБрдЖрдд рдбреЗрд╡рд▓рдкрд░реНрд╕ (рдпрд╛ рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдиреЗ рдРрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ) рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИред рдЕрдиреБрднрд╡реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рдЕрд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ рдиреБрдХрд╕рд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ ...
рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ред IOS рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рднрдВрдбрд╛рд░рдг рдХреИрд╕реЗ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдордВрдЪ рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рддрдВрддреНрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд▓рд╕ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рдкреНрд░рд╛рд░реВрдк рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЕрдХреНрд╕рд░, рдмреБрдирд┐рдпрд╛рджреА рддрдВрддреНрд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред
рдФрд░ рдЗрд╕рд▓рд┐рдП, Xcode рд╣рдореЗрдВ "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдХреНрдпрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рджреЗрдЦреЗрдВред
рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рдХреЛ рд╕реАрдзреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ( .storyboard
рдФрд░ .xib
рдорд╛рд░реНрдХрдЕрдк рдлрд╝рд╛рдЗрд▓реЛрдВ) рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ XML рдлрд╝рд╛рдЗрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрд┐рд▓реНрдбрд░ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИрдВ) рдпрд╛ рдХреЛрдб рдореЗрдВред рдкрд╣рд▓рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣рдореЗрдВ рд╕реНрдХреНрд░реАрди рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдФрд░ рдЧрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд┐рдирд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдЕрддрд┐рд░реЗрдХ рдореЗрдВ рдЪрд▓рд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ (рдпрджрд┐ рдПрдХ рд╣реА рдкрд╛рда рдХрдИ рддрддреНрд╡реЛрдВ, рдбрд┐рд╕реНрдкреНрд▓реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рджреВрд╕рд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рд┐рд░реНрдл рдбреЗрдЯрд╛ рдЕрддрд┐рд░реЗрдХ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░реАрди рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рднрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЕрддрд┐рд░рд┐рдХреНрдд IBOutlet
рд╕реЗрдЯ рдХрд░рдХреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдкрд╛рда рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реБрдП), рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдХреЛрдб рдЕрддрд┐рд░реЗрдХ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ (рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬрд╣рд╛рдВ рдкрд╛рда рдЪрд╛рд╣рд┐рдП рд╕реАрдзреЗ рдЖрд╡реЗрджрди рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП)ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Apple рдПрдХ рдорд╛рдирдХ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдорд╛рдирдХ рдПрдХ рд╕рд╣рдпреЛрдЧреА рд╕рд░рдгреА ( "-"
) рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░реВрдк рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ:
"key" = "value";
рдХреБрдВрдЬреА рдХреЗрд╕-рд╕рдВрд╡реЗрджреА рд╣реИ, рд░рд┐рдХреНрдд рд╕реНрдерд╛рди, рдЕрдВрдбрд░рд╕реНрдХреЛрд░, рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рдФрд░ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдгреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░реЗрдЯрд╡рд░реНрдб рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдлрд╛рдЗрд▓реЗрдВ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрдХрд▓рди, рдЕрд╕реЗрдВрдмрд▓реА рдпрд╛ рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдирд┐рдпрдорд┐рдд рд╕реНрд░реЛрдд рд╣реИрдВред рдЗрд╕рдХреЗ рдХрдИ рдХрд╛рд░рдг рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рддреНрд░реБрдЯрд┐рдпрд╛рдВред рдЕрд░реНрдзрд╡рд┐рд░рд╛рдореЛрдВ, рд╕рдорд╛рди рд╕рдВрдХреЗрддреЛрдВ, рдЕрддрд┐рд░рд┐рдХреНрдд рдпрд╛ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдЙрджреНрдзрд░рдгреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рд╕реЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Xcode рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЙрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЯрд╛рдЗрдкреЛ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рд╣реЛред
рджреВрд╕рд░реЗ, рдЪрд╛рдмрд┐рдпреЛрдВ рдХрд╛ рджреЛрд╣рд░рд╛рд╡ред рдмреЗрд╢рдХ, рдЗрд╕рдХреЗ рдХрд╛рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реИрд╢ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЧрд▓рдд рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдХрд┐рд╕реА рд▓рд╛рдЗрди рдХреЛ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреБрдВрдЬреА рдХреА рдЕрдВрддрд┐рдо рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдХреЛ рдКрдкрд░ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдирддреАрдЬрддрди, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рднрд░рддреЗ рд╕рдордп рдмрд╣реБрдд рдЧрд╣рди рдФрд░ рдЪреМрдХрд╕ рд╣реЛрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред
рдЬрд╛рдирдХрд╛рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рддреБрд░рдВрдд рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ: "рд▓реЗрдХрд┐рди JSON рдФрд░ PLIST рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреНрдпрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛?" рдЦреИрд░, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, JSON
рдФрд░ PLIST
(рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рд╛рдзрд╛рд░рдг XML
) рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдорд╛рдирдХ рд╣реИрдВ рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рдиреНрдпреВрдореЗрд░рд┐рдХ, рддрд╛рд░реНрдХрд┐рдХ ( BOOL
), рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛, рд╕рдордп рдФрд░ рджрд┐рдирд╛рдВрдХ, рд╕рд╛рде рд╣реА рд╕рдВрдЧреНрд░рд╣ - рдЕрдиреБрдХреНрд░рдорд┐рдд ( Array
) рдФрд░ рд╕рд╛рд╣рдЪрд░реНрдп рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред Dictionary
) рд╕рд░рдгрд┐рдпрд╛рдБред рддрджрдиреБрд╕рд╛рд░, рдЗрди рдорд╛рдирдХреЛрдВ рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЕрдзрд┐рдХ рд╕рдВрддреГрдкреНрдд рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЙрди рдкрд░ рдХреБрддрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рджреВрд╕рд░реЗ, рдРрд╕реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЧрддрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕-рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝реА рдХрдо рд╣реИ, рдлрд┐рд░ рд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдХрд╛рд░рдгред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЛрдб рдореЗрдВ рдХрдИ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕реНрдерд╛рдиреАрдпрдХреГрдд, рд╕реНрдерд╛рдиреАрдпрдХреГрдд, рд▓реЗрдХрд┐рди рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдирд╣реАрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдорд╛рдирдХреЛрдВ рдХреЗ рд╕рд╛рде, рдЕрдм рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдХреНрд░рдо рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд╕рд░рд▓ рд╕рд┐рдВрдЧрд▓ рд╡реНрдпреВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ рдФрд░ ViewController рдкрд░ Main.storyboard рдореЗрдВ рдХреБрдЫ рдкрд╛рда рдШрдЯрдХ рдЬреЛрдбрд╝реЗрдВред

рдЗрд╕ рдорд╛рдорд▓реЗ рдХреА рд╕рд╛рдордЧреНрд░реА рд╕реАрдзреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:
1) рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдЬрд╛рдПрдВ

2) рдлрд┐рд░ - рдЯрд╛рд░рдЧреЗрдЯ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рддрдХ

3) рдЬрд╛рдирдХрд╛рд░реА рдЯреИрдм рдЦреЛрд▓реЗрдВ

рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдЕрдиреБрднрд╛рдЧ рдореЗрдВ , рд╣рдо рддреБрд░рдВрдд рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рдЕрдВрдЧреНрд░реЗрдЬреА - рд╡рд┐рдХрд╛рд╕ рднрд╛рд╖рд╛" рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЛ рд╡рд┐рдХрд╛рд╕ рднрд╛рд╖рд╛ (рдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ) рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдм рдПрдХ рдФрд░ рднрд╛рд╖рд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, " + " рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рднрд╛рд╖рд╛ рдЪреБрдиреЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд░реВрд╕реА рдЪреБрдирд╛)ред рдХреИрд░рд┐рдВрдЧ Xcode рд╣рдореЗрдВ рддреБрд░рдВрдд рдпрд╣ рдЪреБрдирдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реА рднрд╛рд╖рд╛ рдЬреЛрдбрд╝реЗ рдЧрдП рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╣реЛред

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Main.storyboard (Base)
рдмреЗрд╕ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдореЗрдВ рдбрд┐рдлреЙрд▓реНрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдорд╛рд░реНрдХрдЕрдк рдлрд╛рдЗрд▓ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдмрдирд╛рддреЗ рд╕рдордп, рд╕рдВрдмрдВрдзрд┐рдд Main.strings (Russian)
рдЬреЛрдбрд╝реЗ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ - рд░реВрд╕реА рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ред рдЗрд╕реЗ рдЦреЛрд▓рдХрд░, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
/* Class = "UILabel"; text = "Label"; ObjectID = "tQe-tG-eeo"; */ "tQe-tG-eeo.text" = "Label"; /* Class = "UITextField"; placeholder = "TextField"; ObjectID = "cpp-y2-Z0N"; */ "cpp-y2-Z0N.placeholder" = "TextField"; /* Class = "UIButton"; normalTitle = "Button"; ObjectID = "EKl-Rz-Dc2"; */ "EKl-Rz-Dc2.normalTitle" = "Button";
рдпрд╣рд╛рдВ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рджреЗрдЦрднрд╛рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ Xcode рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:
/* Class = "UILabel"; text = "Label"; ObjectID = "tQe-tG-eeo"; */ "tQe-tG-eeo.text" = "Label";
рдпрд╣рд╛рдВ text
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП "Label"
рдорд╛рди рдХреЗ рд╕рд╛рде UILabel
рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред ObjectID
- рдорд╛рд░реНрдХрдЕрдк рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ - рдпрд╣ Storyboard/Xib
рдкрд░ рд░рдЦреЗ рдЬрд╛рдиреЗ рдХреЗ рд╕рдордп рдХрд┐рд╕реА рднреА рдШрдЯрдХ рдХреЛ рд╕реМрдВрдкреА рдЧрдИ рдПрдХ рдЕрдиреВрдареА рд░реЗрдЦрд╛ рд╣реИред рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, text
) рд╕реЗ рд╣реИ рдХрд┐ рдХреБрдВрдЬреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
рд▓реЗрдмрд▓ рдХреЗ рд▓рд┐рдП tQe-tG-eeo рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рдЗрд╕ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ, рдХреЗрд╡рд▓ " рдореВрд▓реНрдп " рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдзреАрди рд╣реИред " рд▓реЗрдмрд▓ " рдХреЛ " рд▓реЗрдмрд▓ " рд╕реЗ рдмрджрд▓реЗрдВред рд╣рдо рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рдХрд░реЗрдВрдЧреЗред
/* Class = "UILabel"; text = "Label"; ObjectID = "tQe-tG-eeo"; */ "tQe-tG-eeo.text" = ""; /* Class = "UITextField"; placeholder = "TextField"; ObjectID = "cpp-y2-Z0N"; */ "cpp-y2-Z0N.placeholder" = " "; /* Class = "UIButton"; normalTitle = "Button"; ObjectID = "EKl-Rz-Dc2"; */ "EKl-Rz-Dc2.normalTitle" = "";
рд╣рдордиреЗ рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред

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

рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж:

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, Xcode рдиреЗ рдПрдХ рдирдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ ru.lproj
рдмрдирд╛рдИ, рдЬрд┐рд╕рдореЗрдВ рдЗрд╕рдиреЗ рдмрдирд╛рдП рдЧрдП рд╕реНрдерд╛рдиреАрдп рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд░рдЦрд╛ред

рдФрд░ рддреИрдпрд╛рд░ iOS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП Xcode рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╣рд╛рдВ рд╣реИ? рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдпрд╣ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕реАрдзреЗ рдЖрд╡реЗрджрди рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдФрд░ рднрдВрдбрд╛рд░рдг рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рднреА рд╣реИрдВред рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдПрдХреНрд╕рдХреЛрдб рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╕рдордп, рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░реНрдпрд╛рд╡рд░рдг рд╕рдВрд╕рд╛рдзрдиреЛрдВ ( рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб / рдПрдХреНрд╕рд┐рдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓реЗрдЖрдЙрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ, рдЫрд╡рд┐рдпреЛрдВ, рд░реЗрдЦрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдЖрджрд┐) рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕реНрддрд░ рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реБрдПред
рдЗрд╕ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Apple Bundle(NSBundle)
рдХреНрд▓рд╛рд╕ Bundle(NSBundle)
( рдореБрдлреНрдд рдЕрдиреБрд╡рд╛рдж ) рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдРрдкреНрдкрд▓, рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдлреНрд░реЗрдорд╡рд░реНрдХ, рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рдХрдИ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рд╕рд╛рдордЧреНрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Bundle
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдмрдВрдбрд▓ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмрдВрдбрд▓ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдордВрдЪ рдФрд░ рдкреНрд░рдХрд╛рд░ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИрдВред bundle
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЬрд╛рдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреИрдХреЗрдЬ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред Bundle
рддрддреНрд╡реЛрдВ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП Bundle
рдПрдХ рдПрдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ, рдЬреЛ рдкреИрдХреЗрдЬ рд╕рдВрд░рдЪрдирд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЬрд░реВрд░рддреЛрдВ, рдЙрдкрд▓рдмреНрдз рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдФрд░ рдЕрдиреНрдп рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХрд╛рд░рдХреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред
рд╕рдВрд╕рд╛рдзрди рдХреА рдЦреЛрдЬ рдФрд░ рдЦреЛрдЬ
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рд╕рдВрд╕рд╛рдзрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЖрдкрдХреЛ рдЙрд╕рдХрд╛ bundle
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред Bundle
рдХреНрд▓рд╛рд╕ рдореЗрдВ рдХрдИ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдЕрдХреНрд╕рд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Bundle.main
рд╡рд░реНрддрдорд╛рди рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдб рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдПрдХ рдкрде рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣, Bundle.main
ред Bundle.main
рд╡рд░реНрддрдорд╛рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
FileManager
рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ Bundle.main
рд╕рдВрд░рдЪрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

рдкреВрд░реНрд╡рдЧрд╛рдореА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ: рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ Bundle.main
рдмрди рдЬрд╛рддрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг (рд╕рд┐рд╕реНрдЯрдо рднрд╛рд╖рд╛), рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдФрд░ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╕реНрдерд╛рдиреАрдпрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╡рд░реНрддрдорд╛рди рднрд╛рд╖рд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдорд┐рд▓рд╛рди рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдВрдЧреНрд░реЗрдЬреА рд╕реНрдерд╛рдиреАрдпрдХрд░рдг, рдХреНрдпреЛрдВрдХрд┐ рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЛ рдПрдХ рд╡рд┐рдХрд╛рд╕ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ)ред рдпрджрд┐ рдЖрдк рдбрд┐рд╡рд╛рдЗрд╕ рднрд╛рд╖рд╛ рдХреЛ рд░реВрд╕реА рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реВрд╕реА рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛ред

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

рдПрдХ рдкрдВрдХреНрддрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рд╕реНрдерд╛рдиреАрдпрдХреГрдд Storyboard/Xib
рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдзрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рднреА рдорд╛рд░реНрдХрдЕрдк рдХреЛ рдмрдЪрд╛рдПрдЧрд╛ред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд▓рд╕ рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рддреБрд░рдВрдд рдпрд╣ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рднрд╛рд╖рд╛ рдореЗрдВ рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧреА рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЗ рд▓реЗрдЖрдЙрдЯ рдХреЛ рддреБрд░рдВрдд рдареАрдХ рдХрд░ рджреЗрдЧреА, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдкрд╛рда рдХреА рдорд╛рддреНрд░рд╛ рдЕрд▓рдЧ рд╣реИ, рдпрд╛ рдкрд╛рда рдХреА рджреВрд╕рд░реА рджрд┐рд╢рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд░рдмреА, рд╣рд┐рдмреНрд░реВ рдФрд░ рдЗрд╕реА рддрд░рд╣) ред рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб / Xib рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИ (рд╕рднреА рдПрдХ рд╣реА, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╛рдЗрд▓реЗрдВ рдмрд╣реБрдд рдХрдо рдЬрдЧрд╣ рд▓реЗрддреА рд╣реИрдВ)ред
рдЗрд╕рд▓рд┐рдП, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рдХреЛ рдЪреБрдирддреЗ рд╕рдордп, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреМрди рд╕рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реЛрдЧрд╛ред
рдЕрдкрдиреЗ рдЖрдк рдХрд░реЛред рдХреЛрдб рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИред рд▓реЗрдХрд┐рди рдЙрд╕ рдкрд╛рда рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдХреЛрдб рдореЗрдВ рд╕реАрдзреЗ рд╕реЗрдЯ рд╣реИ?
IOS рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрд╛ред
рд╕реНрдерд╛рдиреАрдп рдкрд╛рда рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╛рдЙрдВрдбреЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ NSLocalizedStrings
рдкрд░рд┐рд╡рд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
NSLocalizedString(_ key: String, comment: String) NSLocalizedString(_ key: String, tableName: String?, bundle: Bundle, value: String, comment: String)
рдФрд░ рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдореЗрдВ рдореИрдХреНрд░реЛрдЬрд╝
NSLocalizedString(key, comment) NSLocalizedStringFromTable(key, tbl, comment) NSLocalizedStringFromTableInBundle(key, tbl, bundle, comment) NSLocalizedStringWithDefaultValue(key, tbl, bundle, val, comment)
рдЪрд▓реЛ рд╕реНрдкрд╖реНрдЯ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ key
рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬреА рд╣реИ; val
(рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди) - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд╣реАрдВ рд╣реИ; comment
- (рдХрдо рд╕реНрдкрд╖реНрдЯ) рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ)ред
рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП bunble
( tbl
) рдФрд░ bunble
, рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдо ( tbl
) рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╣реИ (рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ Apple рдЗрд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдХреНрдпреЛрдВ рдХрд╣рддрд╛ рд╣реИ), рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рдкрдВрдХреНрддрд┐ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдЪрд╛рд╣рд┐рдП; рдЬрдм рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ .string
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЖрдкрдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдХреА рднреАрдбрд╝ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╕рдВрдкрд╛рджрди рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред
bundle
рдкреИрд░рд╛рдореАрдЯрд░ рдЖрдЧреЗ рднреА рд╕рдВрд╕рд╛рдзрди рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрдВрдбрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рд╣реИ, рдЕрд░реНрдерд╛рдд рд╣рдо рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдереЛрдбрд╝рд╛ рдФрд░ред рд╣рдо рд╕реАрдзреЗ рдлрд╛рдЙрдВрдбреЗрд╢рди рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рд╕реНрдкрд╖реНрдЯ рддрд╕реНрд╡реАрд░ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЛрдВ (рдореИрдХреНрд░реЛрдЬрд╝) рдХреА рдШреЛрд╖рдгрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рднрд╛рд░реА рдмрд╣реБрдордд рдмрд╕ рдЗрд╕ рдмрд┐рдВрджреБ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрд╡рд┐рдлреНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдмрд╣реБрдд рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ:
/// Returns a localized string, using the main bundle if one is not specified. public func NSLocalizedString(_ key: String, tableName: String? = default, bundle: Bundle = default, value: String = default, comment: String) -> String
"рдореБрдЦреНрдп рдмрдВрдбрд▓ рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреЗрддрд╛ рд╣реИ" - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рднреА рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред
#define NSLocalizedString(key, comment) \ [NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:nil] #define NSLocalizedStringFromTable(key, tbl, comment) \ [NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:(tbl)] #define NSLocalizedStringFromTableInBundle(key, tbl, bundle, comment) \ [bundle localizedStringForKey:(key) value:@"" table:(tbl)] #define NSLocalizedStringWithDefaultValue(key, tbl, bundle, val, comment) \ [bundle localizedStringForKey:(key) value:(val) table:(tbl)]
рдпрд╣рд╛рдВ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ bundle
(рдкрд╣рд▓реЗ рджреЛ рдорд╛рдорд▓реЛрдВ рдореЗрдВ mainBundle
) рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА рдРрд╕рд╛ рд╣реА рд╣реИред рдмреЗрд╢рдХ, рдореИрдВ рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ Bundle
( NSBundle
) рд╡рд░реНрдЧ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рддреБрд░рдВрдд рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЙрд╕ рд╕рдордп рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╡рд┐рд╢реЗрд╖ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдореВрд▓реНрдп рдХреА рдирд╣реАрдВ рдереАред рд▓реЗрдХрд┐рди рдХреЛрдб рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдпрд╣ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдлрд╛рдЙрдВрдбреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдп рдорд╛рдирдХ рдмрдВрдбрд▓ рд╡рд┐рдзрд┐рдпреЛрдВ рдкрд░ рд╕рд┐рд░реНрдл рд░реИрдкрд░ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╣реИред рдХреЛрдИ рднреА рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ bundle
рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреА рдУрд░ рд╕реЗ рд╕реАрдзреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ (рдкрд░рд┐рдкрддреНрд░ рд▓рд┐рдВрдХ рдФрд░ рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЗ рдЧрдарди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╣реБрдд рдХрдо, рдмрд╣реБрдд рдХрдо)ред
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рд╣реЛрдЧрд╛ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрди рд╣реЛрдВрдЧреЗред рдЗрд╕реЗ Localizable.strings * рдХрд╣реЗрдВ рдФрд░ рдЗрд╕реЗ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред
"testKey" = "testValue";
( рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб / Xib рдХреА рддрд░рд╣ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╣реИрдВ , рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рд╣рдо рд░реВрд╕реА рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдореЗрдВ " testValue " рдХреЛ " рдкрд░реАрдХреНрд╖рдг рдорд╛рди " рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреЗрдВрдЧреЗ ред ")
рдорд╣рддреНрд╡рдкреВрд░реНрдг! IOS рдореЗрдВ, рдЗрд╕ рдирд╛рдо рдХреА рдПрдХ рдлрд╝рд╛рдЗрд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрджрд┐ рдЖрдк рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдо ( tbl
) рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрд╡рддрдГ рд╣реА Localizable.strings
рдкрд░ рджрд╕реНрддрдХ рджреЗрдЧрд╛ред
рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ
//Swift print("String for 'testKey': " + NSLocalizedString("testKey", comment: ""))
рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЪрд▓рд╛рдПрдВред рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ рд▓рд╛рдЗрди рджрд┐рдЦрд╛рдИ рджреЗрдЧреА
String for 'testKey': testValue
рд╕рдм рдХреБрдЫ рд╕рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
рдЗрд╕реА рддрд░рд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде, рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЛ рдмрджрд▓реЗрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдПрдВред рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛
String for 'testKey':
рдЕрдм рдорд╛рди рдХреЛ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ Localizable.strings
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд╣реАрдВ рд╣реИ:
//Swift print("String for 'unknownKey': " + NSLocalizedString("unknownKey", comment: ""))
рдРрд╕реЗ рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛
String for 'unknownKey': unknownKey
рдЪреВрдВрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдИ рдХреБрдВрдЬреА рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХреБрдВрдЬреА рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реА рд╡рд╛рдкрд╕ рдЖрддреА рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рдкрд░рд┐рдгрд╛рдо рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ
//Swift print("String for 'testKey': " + NSLocalizedString("unknownKey", tableName: nil, bundle: Bundle.main, value: "noValue", comment: ""))
рдЬрд╣рд╛рдВ value
рдкреИрд░рд╛рдореАрдЯрд░ ( рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди ) рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - bundle
ред
рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рдирдХ iOS рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рдорд╛рди рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди рддрдВрддреНрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ ( %@
, %li
, %f
, рдЖрджрд┐) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
"stringWithArgs" = "String with %@: %li, %f";
рдРрд╕реА рд▓рд╛рдЗрди рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдлреЙрд░реНрдо рдХрд╛ рдПрдХ рдХреЛрдб рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛
//Swift print(String(format: NSLocalizedString("stringWithArgs", comment: ""), "some", 123, 123.098 ))
рд▓реЗрдХрд┐рди рдРрд╕реЗ рдбрд┐рдЬрд╛рдЗрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ! рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЖрдИрдУрдПрд╕ рдХрдбрд╝рд╛рдИ рд╕реЗ рд╕рдВрдЦреНрдпрд╛рдУрдВ, рддрд░реНрдХреЛрдВ рдХреЗ рдЖрджреЗрд╢, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдирдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рдХреЗ рдмрдЬрд╛рдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
//Swift print(String(format: NSLocalizedString("stringWithArgs", comment: ""), "some", "123", 123.098 ))
рддрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмреЗрдореЗрд▓ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ "123" рдХреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛрдб рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛
"String with some: 4307341664, 123.089000"
рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ
"String with some: 0, 123.089000"
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рддрд░реНрдХ рд╕реВрдЪреА рдореЗрдВ %@
рдЕрдиреБрд░реВрдк рд╡рд╕реНрддреБ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ
//Swift print(String(format: NSLocalizedString("stringWithArgs", comment: ""), "123", 123.098 ))
рддрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рдордп рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдореБрдЭреЗ рдзрдХреНрдХрд╛ рджреЛ, рдмрдЪреНрдЪрд╛! рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг
рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдп, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИред рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ (рджреЛрдиреЛрдВ Push Notifications
рдФрд░ Localizable Strings
) рдЕрдХреНрд╕рд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдРрд╕реЗ рдХрд╛рд░реНрдп рдЗрддрдиреЗ рджреБрд░реНрд▓рдн рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЬрдм рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкрд╛рд╕ рдПрдХ рдЙрдЪрд┐рдд рдкреНрд░рд╢реНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдХреНрдпрд╛ рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рд╕рдВрднрд╡ рд╣реИ? рдореИрдВ рдпрд╣рд╛рдВ Apple Push Notification Service
рдСрдкрд░реЗрд╢рди рдореИрдХреЗрдирд┐рдЬреНрдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЦрд╛рд╕рдХрд░ iOS 10.0 рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ, рдкреБрд╢ рдФрд░ рд▓реЛрдХрд▓ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рд╣реА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЬрд░рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - UserNotifications
ред
рдмрд╣реБрднрд╛рд╖реА рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЬрдм рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдп рдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдореБрдЭрд╕реЗ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛, рддреЛ рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдИ, рд╡рд╣ рдереА рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдВрджреЗрд╢ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд░рдирд╛ред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдмреЗрд╣рдж рд╕рд░рд▓ рдерд╛: рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдмреИрдХрдПрдВрдб рдкрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рднреЗрдЬрддрд╛ рд╣реИ, рдФрд░ рд╕рд░реНрд╡рд░ рдкреБрд╢ рднреЗрдЬрддреЗ рд╕рдордп рдЙрдЪрд┐рдд рд╕рдВрджреЗрд╢ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рддреБрд░рдВрдд рдкрдХ рдЧрдИ: рдпрджрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдмрджрд▓ рдЧрдпрд╛, рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ (рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛), рддреЛ рд╕рд░реНрд╡рд░ рдиреЗ рдкрд┐рдЫрд▓реЗ "рдкрдВрдЬреАрдХреГрдд" рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рдЕрдиреБрд░реВрдк рдкрд╛рда рднреЗрдЬрд╛ред рдФрд░ рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕рд┐рд╕реНрдЯрдо рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд░рдХ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬреЛ рдЬрд╛рдирддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рд╕рдорд╛рдзрд╛рди рддреБрд░рдВрдд рдореБрдЭреЗ рд╕рдмрд╕реЗ рдЬрдВрдЧрд▓реА рдмреИрд╕рд╛рдЦреА рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдореИрдВрдиреЗ рддреБрд░рдВрдд рдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд╛рдзрд╛рди рдвреВрдВрдврдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ (рдордЬрд╛рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдХрдИ рдордВрдЪреЛрдВ рдореЗрдВ "рдбреЗрд╡рд▓рдкрд░реНрд╕" рдиреЗ рдмреИрдХрдПрдВрдб рдкрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреБрд╢рд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдмрдирд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА)ред
рд╕рд╣реА рдирд┐рд░реНрдгрдп рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ред APNS рдкрд░ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЧрдП рдорд╛рдирдХ JSON рдХреЗ рдмрдЬрд╛рдп
"aps" : { "alert" : { "body" : "some message"; }; };
рдлреЙрд░реНрдо рдХреЗ JSON рднреЗрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ
"aps" : { "alert" : { "loc-key" : "message localized key"; }; };
рдЬрд╣рд╛рдВ рд╕реНрдерд╛рдиреАрдп loc-key
рдХрд╛ рдЙрдкрдпреЛрдЧ Localizable.strings
рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬреА рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдзрдХреНрдХрд╛ рд╕рдВрджреЗрд╢ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреБрд╢ рд╕реВрдЪрдирд╛рдУрдВ рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рддрд╛рд░реЛрдВ рдХреЛ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрдВрддреНрд░ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
"aps" : { "alert" : { "loc-key" : "message localized key"; "loc-args" : [ "First argument", "Second argument" ]; }; };
loc-args
рдХреБрдВрдЬреА рддрд░реНрдХреЛрдВ рдХрд╛ рдПрдХ рд╕рд░рдгреА рдкрд╛рд╕ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкрд╛рда рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ ...
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЕрдВрдд рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ:
- рд╕рд░рд▓ рдФрд░ рд╕реБрд▓рдн рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реЗрд╖
.string
рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ; - рдХреЛрдб рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд┐рдирд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛;
- рдХреЛрдб рд╕реЗ рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рддреНрд╡рд░рд┐рдд рдкрд╣реБрдВрдЪ;
- рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреАрдврд╝реА рдФрд░ Xcode рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА (рдПрдкреНрд▓рд┐рдХреЗрд╢рди) рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕рдВрд░рдЪрд┐рдд рдХрд░рдирд╛;
- рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкрд╛рда рдХреЛ рд╕реНрдерд╛рдиреАрдп рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
, Xcode , .
.