IOS рдХреЗ рд▓рд┐рдП Windows Azure рдЯреВрд▓рдХрд┐рдЯ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛

рдореИрдВ рдЖрдИрдУрдПрд╕ рдЯреВрд▓рдХрд┐рдЯ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд▓рдмреНрдз рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдЯреВрд▓рдХрд┐рдЯ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЦреБрд╢ рд╣реВрдВ!

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

рдЖрдИрдУрдПрд╕рдЖрдИрдУрдПрд╕рдЖрдИрдУрдПрд╕


рдЖрдк рдЯреВрд▓рдХрд┐рдЯ рдФрд░ рд╕рднреА рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ github рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

IOS рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдЯреВрд▓рдХрд┐рдЯ рдХреА рдпрд╣ рд░рд┐рд▓реАрдЬрд╝ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдореАрд▓ рдХрд╛ рдкрддреНрдерд░ рд╣реИ, рдпрд╣ рдореЗрд░реА рд░рд╛рдп рдХреЛ рдордЬрдмреВрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬрд╝ рдПрдЬрд╝реНрдпреЛрд░ рдореЛрдмрд╛рдЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЬрдЧрд╣ рд╣реИред

рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреА рддреИрдирд╛рддреА


рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдкрд░ рдореЛрдмрд╛рдЗрд▓ рд╕реЗрд╡рд╛ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдмрдврд╝рд╛рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рд░реЗрдбреА рдкреИрдХреЗрдЬ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ (рдЬреЛ рдХрд┐ рдбрд╛рдЙрдирд▓реЛрдб рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ https://github.com/microsoft-dpe/watoolkitios-lib )

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



рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ 7 рдпрд╛ рдУрдПрд╕рдПрдХреНрд╕) рдФрд░ рд▓рдХреНрд╖реНрдп рдбрд┐рд╡рд╛рдЗрд╕ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 7, рдЖрдИрдУрдПрд╕ рдпрд╛ рдПрдВрдбреНрд░реЙрдЗрдб) рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдЦрдХ рдХреЗ рдмреНрд▓реЙрдЧ рдкрд░ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 7 рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдЯреВрд▓рдХрд┐рдЯ рдФрд░ рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдЯреВрд▓рдХрд┐рдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВ: рд╡реЗрдб рд╡реЗрдЧрдирд░ ред

V1.0.0 рдЬрд╝рд┐рдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рдирд╛


рдЖрдк рд╕рдВрдХрд▓рд┐рдд рднрдВрдбрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЬреАрдердм рдХреЗ рд╕рд╛рде рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдбрд╛рдЙрдирд▓реЛрдб https://github.com/microsoft-dpe/watoolkitios-lib рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рдЕрдирдЬрд╝рд┐рдк рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХрдИ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рд╣реЛрдВрдЧреЗ:


рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдЯреВрд▓рдХрд┐рдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛


рдпрджрд┐ рдЖрдк Xcode рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдиреАрдЪреЗ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд┐рд░реНрджреЗрд╢ рд╣реИ рдХрд┐ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ рдФрд░ рдЪрд▓рд╛рдПрдВред Xcode рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ:

XCode

рджреГрд╢реНрдп-рдЖрдзрд╛рд░рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рдФрд░ рдХрдВрдкрдиреА рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВред рдЗрд╕ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдореЗрдВ, рд╣рдо рдЗрд╕реЗ "FirstAzureProject" рдХрд╣реЗрдВрдЧреЗ ред рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдЪрд╛рд▓реВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рднрдВрдбрд╛рд░ рдХреЗ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рдЕрдирдЪреЗрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦреБрд▓рдиреЗ рдкрд░, рдЪреМрдЦрдЯреЗ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ Add Files to ... рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ

рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ

рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рдлрд╝реЛрд▓реНрдбрд░ (рдПрдХ рдПрдореБрд▓реЗрдЯрд░ рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП) рдореЗрдВ libwatoolkitios.a рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдБ, рдФрд░ рдЗрд╕реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

libwatoolkitios.a

рдЕрдм, рдмрд╛рдПрдВ рдХреЙрд▓рдо рдореЗрдВ рд╕рдмрд╕реЗ рдКрдкрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ (FirstAzureProject) рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рд▓рдХреНрд╖реНрдп рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рддреАрд╕рд░реЗ рдХреЙрд▓рдо рдореЗрдВ рдмрд┐рд▓реНрдб рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╢реАрд░реНрд╖рдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рднреА рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдВред

рдЦреЛрдЬ рдлрд╝реАрд▓реНрдб рдореЗрдВ, рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдЦреЛрдЬ рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдЦреЛрдЬ рдкрде рд╕реЗрдЯрд┐рдВрдЧ рдЦреЛрдЬреЗрдВ :

рд╣реЗрдбрд░ рд╕рд░реНрдЪ

рд▓рд╛рдЗрди рдкрд░ (рджрд╛рдИрдВ рдУрд░) рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдиреАрдЪреЗ рдмрд╛рдИрдВ рдУрд░ + рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рд╣реЗрдбрд░ рдЬреЛрдбрд╝реЗрдВ

рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрде рдЬреЛрдбрд╝реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ (рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рддреЗ рд╕рдордп рдмрдирд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "~ / рдбреЗрд╕реНрдХрдЯреЙрдк / v1.0.0 / рд╢рд╛рдорд┐рд▓" рдЕрдЧрд░ рд╕рдВрдЧреНрд░рд╣ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдЕрдирдЬрд╝рд┐рдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рдпрд╣ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реИ рддреЛ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рдкрде рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рдпрд╛рдж рд░рдЦреЗрдВред

рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрде

рдЕрдм, рдмрд┐рд▓реНрдб рдЪрд░рдг рдЯреИрдм рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрдиреБрднрд╛рдЧ рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдмрд╛рдЗрдирд░реА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ :

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛрдбрд╝реЗрдВ

рдиреАрдЪреЗ рдмрд╛рдИрдВ рдУрд░ + рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рддрдм рддрдХ рдиреАрдЪреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ рдЬрдм рддрдХ рдЖрдкрдХреЛ libxml2.2.7.3.dylib рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╣реАрдВ рдорд┐рд▓ рдЬрд╛рддреАред рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ


рдЕрдм рдЬрдм рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝ рджрд┐рдП рдЧрдП рд╣реИрдВ, рддреЛ рдЖрдЗрдП рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, [ProjectName] AppDelegate.m рдлрд╝рд╛рдЗрд▓ рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, FirstAzureProjectAppDelegate.m) рдФрд░ рдирд┐рдореНрди рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрдпрд╛рдд рдХреЛ рд╡рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
#import "AuthenticationCredential.h" #import "CloudStorageClient.h" 

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

рд╕рдм рдХреБрдЫ рдПрдХ .m рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рдВрд╢реНрд▓реЗрд╖рдг рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмрд╛рдж рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШреЛрд╖рдгрд╛рдПрдБ рдЬреЛрдбрд╝реЗрдВ:
 AuthenticationCredential *credential; CloudStorageClient *client; 

рдЕрдм, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рд▓рд╛рдЗрди рдХреЗ рдмрд╛рдж рдЬреЛрдбрд╝реЗрдВ [self.window makeKeyAndV рдЕрджреГрд╢реНрдп] рдХреЛ didFinishLaunchingWithOptions рд╡рд┐рдзрд┐:
 credential = [AuthenticationCredential credentialWithAzureServiceAccount:@"ACCOUNT_NAME" accessKey:@"ACCOUNT_KEY"]; client = [CloudStorageClient storageClientWithCredential:credential]; [client getBlobContainersWithBlock:^(NSArray* containers, NSError* error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"%i containers were foundтАж",[containers count]); } }]; 


рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ ACCOUNT_NAME рдФрд░ ACCOUNT_KEY рдХреЛ рдЕрдкрдиреЗ Windows Azure рд╕рдВрдЧреНрд░рд╣рдг рдирд╛рдо рдФрд░ рдкрд╣реБрдВрдЪ рдХреБрдВрдЬреА рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЗ Windows Azure Management Portal ( http://windows.azure.com ) рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЪрд▓рд╛рдПрдВред рдЖрдкрдХреЛ рдбрд┐рдмрдЧ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдкрд╛рда рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
2011-05-06 18:18:46.001 FirstAzureProject[27456:207] 2 containers were foundтАж

рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЦрд╛рддреЗ рдореЗрдВ 2 рдХрдВрдЯреЗрдирд░ рд╣реИрдВред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЕрдкрдиреЗ Windows Axure рдЦрд╛рддреЗ рдореЗрдВ рдХрд┐рддрдиреЗ BLOB рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдП рд╣реИрдВред

рдЯреВрд▓рдХрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ


рдЯреВрд▓рдХрд┐рдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред

[ProjectName] AppDelegate.m рдХреНрд▓рд╛рд╕ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝реЗрдВ:
 #import "AuthenticationCredential.h" #import "CloudStorageClient.h" #import "BlobContainer.h" #import "Blob.h" #import "TableEntity.h" #import "TableFetchRequest.h" 


рдбрд┐рдлрд┐рдирд┐рд╢рд▓реЙрдиреНрдЪрд┐рдВрдЧ рд╡рд┐рдердСрдХреНрд╢рди рд╡рд┐рдзрд┐ рдореЗрдВ, рд▓рд╛рдЗрди рдХреЗ рдмрд╛рдж [self.window makeKeyAndV рдЕрджреГрд╢реНрдп] рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдлрд┐рд░, рдЬрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдбреАрдмрдЧрд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЦрд╛рддрд╛ рдирд╛рдо рдФрд░ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг:
 credential = [AuthenticationCredential credentialWithAzureServiceAccount:@"ACCOUNT_NAME" accessKey:@"ACCOUNT_KEY"]; 

рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 7 рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдЯреВрд▓рдХрд┐рдЯ рд╕реЗ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг:
 credential = [AuthenticationCredential authenticateCredentialWithProxyURL:[NSURL URLWithString:@"PROXY_URL"] user:@"USERNAME" password:@"PASSWORD" withBlock:^(NSError *error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"Successfully logged in"); } }]; 

рдЕрдкрдиреА рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрд╡рд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде PROXY_URL , USERNAME рдФрд░ PASSWORD рдХреЛ рдмрджрд▓реЗрдВред

рднрдВрдбрд╛рд░ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЧреНрд░рд╛рд╣рдХ рдмрдирд╛рдирд╛:
 client = [CloudStorageClient storageClientWithCredential:credential]; 

BLOB рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ (рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ):
 // get all blob containers [client getBlobContainersWithBlock:^(NSArray *containers, NSError *error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"%i containers were foundтАж",[containers count]); } }]; 


рд╕рднреА рдХрдВрдЯреЗрдирд░ рдмреНрд▓рдмреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ (рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ):
 // get all blobs within a container [client getBlobs:@"images" withBlock:^(NSArray *blobs, NSError *error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"%i blobs were found in the images containerтАж",[blobs count]); } }]; 


рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕рднреА рдЯреЗрдмрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдпрд╣ рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдФрд░ рд╕реАрдзреЗ рджреЛрдиреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ):
 // get all tables [client getTablesWithBlock:^(NSArray* tables, NSError* error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"%i tables found",[tables count]); } }]; 


рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ (рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдФрд░ рд╕реАрдзреЗ рджреЛрдиреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ):
 // create table [client createTableNamed:@"wadestable" withBlock:^(NSError *error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"Table created"); } }]; 


рддрд╛рд▓рд┐рдХрд╛ рд╣рдЯрд╛рдПрдВ (рдпрд╣ рдкреНрд░реЙрдХреНрд╕реА рдФрд░ рд╕реАрдзреЗ рджреЛрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ):
 //delete a table [client deleteTableNamed:@"wadestable" withBlock:^(NSError *error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"Table was deleted"); } }]; 


рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдпрд╣ рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдФрд░ рд╕реАрдзреЗ рджреЛрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ):
 // get entities for table developers TableFetchRequest* fetchRequest = [TableFetchRequest fetchRequestForTable:@"Developers"]; [client getEntities:fetchRequest withBlock:^(NSArray *entities, NSError *error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"%i entities found in the developer table",[entities count]); } }]; 


рд╡рд┐рдзреЗрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдкреНрд░реЙрдХреНрд╕реА рдФрд░ рд╕реАрдзреЗ рджреЛрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ):
 // get entities for table developers with predicate request NSError* error = nil; NSPredicate* predicate = [NSPredicate predicateWithFormat:@"Name = 'Wade' || Name = 'Vittorio' || Name = 'Nathan'"]; TableFetchRequest* anotherFetchRequest = [TableFetchRequest fetchRequestForTable:@"Developers" predicate:predicate error:&error]; [client getEntities:anotherFetchRequest withBlock:^(NSArray *entities, NSError *error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"%i entities returned by this request",[entities count]); } }]; 


рдФрд░ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?


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

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


All Articles