рдиреНрдпреВрдЬрд╝рд╕реНрдЯреИрдВрдб рдРрдкред IOS рдкрддреНрд░рд┐рдХрд╛ рдмрдирд╛рдПрдВ

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВ рдПрдХ рдкреЗрдкрд░ рдкрддреНрд░рд┐рдХрд╛ рдХреЗ iOS рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рджрд░рдЕрд╕рд▓, рдпрд╣ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рдпрд╛рд╕ рд╣реИред

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

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

рдиреНрдпреВрдЬрд╝рд╕реНрдЯреИрдВрдб рдХрд┐рдЯ рдирд┐рдореНрдирд╛рдВрдХрд┐рдд рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ: рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рдмрдВрдзрди рддрдВрддреНрд░ (NKLibrary) рдкрддреНрд░рд┐рдХрд╛ (NKIssue) рдФрд░ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ (NKAssetDownload) рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореБрджреНрджреЛрдВ, рдкреГрд╖реНрдарднреВрдорд┐ рд╕рд╣рд┐рдд рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ рд╣реИред рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдардВрдбрд╛! рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрд╕ рд╕рдордп рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕реНрдкрд╖реНрдЯ рдерд╛ рдХрд┐ рдЗрди рдЧрд┐рдЬрд╝реНрдореЛрдВ рдХреЛ рдПрдХ рдкрддреНрд░рд┐рдХрд╛ рдореЗрдВ рдХреИрд╕реЗ рдмрджрд▓рдирд╛ рд╣реИред

рд╕рднреА рд╕рдорд╛рдиред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд░рдо-рдкрддреНрд░рд┐рдХрд╛ рдореЗрдВ рджреЛ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ: рдкрддреНрд░рд┐рдХрд╛ рдХреЗ рдореБрджреНрджреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдФрд░ рдПрдХ рдЕрд▓рдЧ рдкрддреНрд░рд┐рдХрд╛ рдХрд╛ рдкреНрд░рджрд░реНрд╢рдиред рдпрд╛рдиреА рдиреНрдпреВрдЬрд╝рд╕реНрдЯреИрдВрдб рдХрд┐рдЯ рдкрд╣рд▓реЗ рдШрдЯрдХ - рдкреНрд░рдмрдВрдзрди рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред рджреВрд╕рд░рд╛ рдШрдЯрдХ - рдкрддреНрд░рд┐рдХрд╛ рдХреЗ рдПрдХ рдЕрдВрдХ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди - Apple рдиреЗ рдХрд┐рд╕реА рднреА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдмреЛрдЭ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ред рдореИрдВ рдЙрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛, рджреВрд╕рд░рд╛ред

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

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, Apple рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрддреНрд░рд┐рдХрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЕрдЪреНрдЫреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдкрддреНрд░рд┐рдХрд╛ рдХреЛ рд╕реНрд╡рд╛рдЗрдк рдХреЗ рд╕рд╛рде рдкреГрд╖реНрдард╛рдВрдХрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ UIScrollView рдФрд░ рдЕрдирдВрдд рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЗ рд╡рд┐рдЪрд╛рд░ (рджреЗрд╡ рд╕реЗрдм -> WWDC -> рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рддрдХрдиреАрдХ -> рдЕрдирдВрдд рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рддреЛ рдЖрдкрдХреЛ рдкреВрд░реЗ рдореБрдЦреНрдп рджреГрд╢реНрдп рдкрд░ UIScrollView рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред UIScrollView рдХреЗ рд▓рд┐рдП, рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЪреМрдбрд╝рд╛рдИ рдореЗрдВ рддреАрди рд╕реНрдХреНрд░реАрди рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЙрд╕ рдкрд░ рддреАрди UIViews (рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рд╕реНрдХреНрд░реАрди рдХрд╛ рдЖрдХрд╛рд░) рдбрд╛рд▓реЗрдВред рдХреБрдЫ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрд╡рд╛рдЗрдк рдкрд░ рдПрдХ рд╕реБрдВрджрд░ рдкреЗрдЬрд┐рдВрдЧ рд╣реИред рдлрд┐рдирд┐рд╢ рд▓рд╛рдЗрди рдкрд░, рдпрд╣ UIScrollView рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ - рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВрдбреАрдбрдЗрдВрдбрдПрдХреНрд▓реЗрд░реЗрдЯрд┐рдВрдЧ: - рдФрд░, рдЗрд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрдВрддрд░рд┐рдХ UIView рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдЕрдирдВрдд рд╕реНрдХреНрд░реЙрд▓ рдХреА рдЬрдЯрд┐рд▓рддрд╛ - рдпрджрд┐ рдЖрдк рдПрдХ рдФрд░ рджреГрд╢реНрдпрдорд╛рди UIVeiw, рд╕рдорд╛рди, UIScrollView рдПрдореНрдмреЗрдб рдХрд░рддреЗ рд╣реИрдВ - рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд▓рдВрдШрди рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред

рдареАрдХ рд╣реИред рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╣рд╛рдВ рдХреА рдЬрд░реВрд░рдд рд╣реИ?
рдЪрд▓реЛ `` рдЗрд╕ рдкрд▓ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред '' рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрддреНрд░рд┐рдХрд╛ рдХреЗ рдЦреБрд▓реЗ рдкреГрд╖реНрда рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдо, рдЖрд╡реЗрджрди рдореЗрдВ, рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдкреВрд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдкрд╣реБрдВрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП - рд╣рдореЗрдВ рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реЛрдиреЗ рд╕реЗ, рд╕рд╡рд╛рд▓ рдПрдХ рдирдП рд░реВрдк рдореЗрдВ рдЙрдмрд▓рддрд╛ рд╣реИ: рдореИрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдХрд╣рд╛рдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рд╕рдВрднрд╡рдд: рд╡рд┐рдиреНрдпрд╛рд╕ рдпрд╣ рдЬрд╛рдирддрд╛ рд╣реИред рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рдЖрдЧреЗ: рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣рдорд╛рд░реЗ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЛ рдХреЙрдиреНрдлрд┐рдЧ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░, рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдЬрд╛рдирдХрд░, рд╡рд╛рдВрдЫрд┐рдд рджреГрд╢реНрдп рдЬрд╛рд░реА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдореИрдВ рд╕рд┐рдВрдЧрд▓рдЯрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджреВрдВрдЧрд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдЬрд╛рдКрдВрдЧрд╛
@interface DataManager : NSObject @property (nonatomic) int articleIndex; @property (nonatomic) int pageIndex; @property (nonatomic, strong) NSArray *articles; + (id) sharedManager; - (UIView *) currentView; - (UIView *) prevView; - (UIView *) nextView; - (UIView *) upperView; - (UIView *) lowerView; - (int) lastArticleIndex; - (int) lastPageIndex; @end 

рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдореЗрдВ рд╡рд┐рдиреНрдпрд╛рд╕ .plist рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░ рдпрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЕрд╕рд▓ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХ рдРрд╕рд╛ рдкреНрд▓рд┐рд╕реНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬреЛ рдкрддреНрд░рд┐рдХрд╛ рдХреЗ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗ, рдЗрди рдкреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдХрдЪреНрдЪреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ
 <plist version="1.0"> <array> <array> <dict> <key>class</key> <string>SimplePage</string> <key>properties</key> <dict> <key>baseImage</key> <string>1-0.png</string> </dict> </dict> </array> <array> <array> <array> 

  <dict> <dict> <key>class</key> <string>PhotoPage</string> <key>properties</key> <dict> <key>baseImage</key> <string>9-0-4.png</string> <key>photos</key> <array> <dict> <key>photo</key> <string>9-1-f1.png</string> <key>thumbnail</key> <string>9-1-f1m.png</string> </dict> <dict> <dict> <dict> 

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда - рд╡рд░реНрдЧ рдХреА рдкрд╣рд▓реА рд╕рдВрдкрддреНрддрд┐ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ред рд╣рд╛рдБ, рдХрд┐рддрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ! рдореИрдВрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рд▓рд┐рдЦрд╛ рдерд╛, рдФрд░ рдЙрд╕ рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рдкреГрд╖реНрда рдмрдирд╛рдпрд╛ред рдкреВрд░реНрд╡реЛрдХреНрдд рдПрдХрд▓ рдХреЗ рдЯреБрдХрдбрд╝реЗ
 - (UIView *) currentView { NSArray *article = [self.articles objectAtIndex:articleIndex]; NSDictionary *page = [article objectAtIndex:pageIndex]; return [self viewWithDictionary:page]; } - (UIView *) viewWithDictionary: (NSDictionary *) dictionary { Class class = NSClassFromString([dictionary valueForKey:@"class"]); NSDictionary *pageProperties = [dictionary valueForKey:@"properties"]; UIView *uiView = [[class alloc] initWithDictionary:pageProperties]; return uiView; } 

рдХреНрдпрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИ? рдореИрдВ рдЖрдкрдХреЛ SimplePage рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред рд╢реЗрд╖ рдкреГрд╖реНрда рдХрдХреНрд╖рд╛рдПрдВ, рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп, рдЗрд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рддреА рд╣реИрдВ
 @interface SimplePage : UIView @property (nonatomic, strong) NSString *imageDirectory; - (id) initWithDictionary: (NSDictionary *) pageProperties; @end 

рдпрд╛рдиреА рд╣рдо рдЙрди рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ UIView рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣рдо рдПрдХрд▓-рд▓реЙрдЧ рдХреЙрдиреНрдлрд┐рдЧрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ рдПрдХ рдФрд░ рдЗрдореЗрдЬрдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╡реИрд░рд┐рдПрдмрд▓ рд╣реИред рдпрд╣рд╛рдВ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдж рдореЗрдВ рд╣рдореЗрдВ рдмреНрд░реЛрд╢рд░ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдкреНрд▓рд╕реНрдЯ рдбрд╛рд▓реЗрдВ рдФрд░ рдЗрд╕ рд╕рд╛рдорд╛рди рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬреЗрдВред рдЗрд╕рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ - рдбреЙрдХреНрдпреВрдореЗрдВрдЯреНрд╕рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ред рдФрд░ рдпрд╣рд╛рдБ рдЗрд╕рдХреА рд╢реБрд░реВрдЖрдд рд╣реИ
 #if IS_LOCAL // doc/img dir imageDirectory = [DocumentsDirectory stringByAppendingPathComponent:@"img"]; #else // issue dir NKIssue *nkCurrentlyReadingIssue = [[NKLibrary sharedLibrary] currentlyReadingIssue]; imageDirectory = [nkCurrentlyReadingIssue.contentURL path]; #endif #if DEBUG NSLog(@"imageDirectory %@", imageDirectory); #endif ] currentlyReadingIssue]; #if IS_LOCAL // doc/img dir imageDirectory = [DocumentsDirectory stringByAppendingPathComponent:@"img"]; #else // issue dir NKIssue *nkCurrentlyReadingIssue = [[NKLibrary sharedLibrary] currentlyReadingIssue]; imageDirectory = [nkCurrentlyReadingIssue.contentURL path]; #endif #if DEBUG NSLog(@"imageDirectory %@", imageDirectory); #endif 

рдпрд╣реА рд╕рдм рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рд▓реЙрдЧ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЪрд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ?

рдПрдирдХреЗ рдкреНрд░рдмрдВрдзрди

рд╢рдмреНрдж рд╣реА рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдЪреАрдЬрд╝ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ред рдЗрд╕рд▓рд┐рдП рд╣рдо рджреВрд╕рд░реА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдЖрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕рддрд╣ рдФрд░ NKLibrary NKIssue рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рд╕рд░рд▓ рдХреЗ рд▓рд┐рдП, NKLibrary рдХреЗ рд▓рд┐рдП NKIssue-рдПрдХ рд╕рдВрдЧреНрд░рд╣ред NKLibrary рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдпрд╣ рдиреНрдпреВрдЬрд╝рд╕реНрдЯреИрдВрдб рджреНрд╡рд╛рд░рд╛ рд╕рдореНрдорд╛рдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИред рдпрд╣ рднреА рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рд╣реИ рдФрд░, рд╢рд╛рдпрдж, рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдпрд╣ рд╕рдм рд╣реИред

NKIssue рдПрдХ рдкрддреНрд░рд┐рдХрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо, рдореБрджреНрджреЗ рдкрд░ рдПрдХ рдирд╛рдо рдФрд░ рдПрдХ рддрд╛рд░реАрдЦ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдореБрдЭрд╕реЗ рдЧрд▓рддреА рдирд╣реАрдВ рд╣реБрдИ, рддреЛ рдирд╛рдо рдХреА рдХреБрдВрдЬреА рд╣реЛрдЧреА, рдФрд░ рддрд╛рд░реАрдЦ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рддреЛ, рдХреБрдЫ, рдХрд╣реАрдВ рди рдХрд╣реАрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореБрджреНрджреЗ рд╣реИрдВ
 <plist version="1.0"> <array> <dict> <key>Name</key> <string>f-2</string> <key>Title</key> <string>/ 2013</string> <key>Date</key> <date>2013-11-28T08:00:00Z</date> <key>Cover</key> <string>http://fo-nt.net/f/f2.png</string> <key>Content</key> <string>http://fo-nt.net/f/f2.zip</string> </dict> <dict> <dict> 

рд╕рд░реНрд╡рд░ рд╕реЗ plist рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ, NKIssue рдмрдирд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ NKLibrary рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
 NKLibrary *nkLib = [NKLibrary sharedLibrary]; issuesDictionary = [NSArray arrayWithContentsOfFile:issuesPlistFilePath]; for (NSDictionary *issueDictionary in issuesDictionary) { NSString *name = [issueDictionary valueForKey:@"Name"]; NKIssue *nkIssue = [nkLib issueWithName:name]; if(!nkIssue) { [nkLib addIssueWithName:name date:[issueDictionary objectForKey:@"Date"]]; NSString *coverPath = [issueDictionary valueForKey:@"Cover"]; if (IS_RETINA) coverPath = [self retinaURLStringForString:coverPath]; NSString *coverName = [coverPath lastPathComponent]; рдирд╛рдо]; NKLibrary *nkLib = [NKLibrary sharedLibrary]; issuesDictionary = [NSArray arrayWithContentsOfFile:issuesPlistFilePath]; for (NSDictionary *issueDictionary in issuesDictionary) { NSString *name = [issueDictionary valueForKey:@"Name"]; NKIssue *nkIssue = [nkLib issueWithName:name]; if(!nkIssue) { [nkLib addIssueWithName:name date:[issueDictionary objectForKey:@"Date"]]; NSString *coverPath = [issueDictionary valueForKey:@"Cover"]; if (IS_RETINA) coverPath = [self retinaURLStringForString:coverPath]; NSString *coverName = [coverPath lastPathComponent]; 

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

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ, рдЕрднреА рднреА рд▓рд╛рдЗрди рд╣реИ 'рдЕрдЧрд░ (IS_RETINA)'ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣рд╛рдБ рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдкрддреНрд░рд┐рдХрд╛ рдХреЗ рд╕рднреА рдЪрд┐рддреНрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд╣реИрдВред рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╣реИред рдЦреИрд░, рдХрд┐рд╕реА рдФрд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЪрд┐рддреНрд░ рдХреНрдпреЛрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрддреНрд░рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдЯ, Apple рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрдВрдд рдореЗрдВ, рдПрдХ рдкрддреНрд░рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рджреЛ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ: рд╕рд░рд▓ рдФрд░ @ 2xред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди NKLibrary рд╣реИрдВред рдорд╛рдореВрд▓реА рд░реВрдк рд╕реЗ, рд▓реЗрдХрд┐рди рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд▓реЙрдЧреНрд╕ рдХреЗ UI рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рддреНрдпреЗрдХ рдкрддреНрд░рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рджреГрд╢реНрдп рдЕрд▓рдЧ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд - рд╕рдореНрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рд╡рд╣рд╛рдБ NKIssueред рдЙрдирдореЗрдВ рд╕реЗ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк, рд╕рдВрдкрддреНрддрд┐ '' рд╕реНрдерд┐рддрд┐ '' рд╣реИ, рдЬреЛ рдХрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ: рдХреЛрдИ рдирд╣реАрдВ, рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рд▓реЙрдЧ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрд░рдорд╢рдГ рдбрд╛рдЙрдирд▓реЛрдб рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред

рдЖрдкрдХреЛ рдЙрд╕ рдХрд┐рдЯ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдмреНрд░реЛрд╢рд░ рдмрдирд╛рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред NKAssetDownload рддреАрд╕рд░реА NK рдЪреАрдЬрд╝ рд╣реИ - рдиреНрдпреВрдЬрд╝рд╕реНрдЯреИрдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓реЛрдбрд░ (рд╢рд╛рдпрдж рдРрд╕рд╛)ред рдкреНрд░рдХреНрд░рд┐рдпрд╛: NKIssue рдФрд░ NSURLRequest (NSURL, рдмрд╛рд░реА рдореЗрдВ рдЪрдпрдирд┐рдд рдкрддреНрд░рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП URL рддрд╛рд░ рд╕реЗ рд▓реА рдЧрдИ рд╣реИ рдЬреЛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд), рдЗрдиреНрд╕реНрддрд╛рдВрдд NKAssetDownload рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ WithDelegate рд╡рд┐рдзрд┐: (рдЖрдИрдбреА <NSURLConnectionDownloadDelegate>) рдкреНрд░рддрд┐рдирд┐рдзрд┐
 NSURLRequest *req = [NSURLRequest requestWithURL:downloadURL]; NKAssetDownload *assetDownload = [nkIssue addAssetWithRequest:req]; [assetDownload downloadWithDelegate:self]; [assetDownload setUserInfo:[NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInt:index], @"Index", nil]]; рдЕрдиреБрд░реЛрдз]; NSURLRequest *req = [NSURLRequest requestWithURL:downloadURL]; NKAssetDownload *assetDownload = [nkIssue addAssetWithRequest:req]; [assetDownload downloadWithDelegate:self]; [assetDownload setUserInfo:[NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInt:index], @"Index", nil]]; 

рд╕реБрд╡рд┐рдзрд╛рдПрдБ NKAssetDownload рдкреГрд╖реНрдарднреВрдорд┐ рдбрд╛рдЙрдирд▓реЛрдб рд╣реИред рд╡рд╣ рдиреНрдпреВрдЬрд╝рд╕реНрдЯреИрдВрдб рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ред рдЕрднреА рднреА рдЕрдЪреНрдЫрд╛рдЗрдпрд╛рдВ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо bg рд▓реЛрдбрд┐рдВрдЧ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рднреА NKAssetDownload рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдбрд╡рд┐рдереЗрд▓рдЧреЗрдЯ рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реМрдЯрдиреЗ рдкрд░ рдПрдХ рдбреНрдпреВрдЯреА рд▓рдЧрд╛рддрд╛ рд╣реИ:
 for (NKAssetDownload *assetDownload in [nkIssue downloadingAssets]) { [assetDownload downloadWithDelegate:self]; } downloadingAssets]) { for (NKAssetDownload *assetDownload in [nkIssue downloadingAssets]) { [assetDownload downloadWithDelegate:self]; } 

рд╡рд╣ рд╕рдм рдорд╛рд▓реВрдо рд╣реЛрддрд╛ рд╣реИред рд╣рдо рдХреБрдЫ рдкреНрд░рдЧрддрд┐ рдмрд╛рд░ рдХреЗ рд╕рд╛рде рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдбрд╛рдЙрдирд▓реЛрдб, рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдЗрдХрди рдХреА рдЬрдЧрд╣: [[UIApplication sharedApplication] setNewsstandIconImage: [рдкреНрд░рдХрд╛рд╢рдХ coverImageForIssue: nkIssue]]ред рдпрджрд┐ рд╣рдордиреЗ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВред рдЖрд╣, рд╣рд╛рдБ, рдЖрд╡реЗрджрди, рдХреЗ рдмрд╛рдж рдкрддреНрд░рд┐рдХрд╛ рдбрд╛рдЙрдирд▓реЛрдб рд╕рдбрд╝рдХ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ NKIssue contentURL (рдирд╣реАрдВ рдпрдХреАрди рд╣реИ рдХрд┐ рдПрдХ рджрд╛рдпрд┐рддреНрд╡ред рд╢рд╛рдпрдж рд╡рд╣рд╛рдБ рдХреБрдЫ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ рдХрд┐ рдХреНрдпрд╛)ред

рдЗрд╕рдХреЗ рдмрд╛рдж, NKIssue 'рдЙрдкрд▓рдмреНрдз' 'рдХреА' рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ - рдЖрдк '' рд╡рд┐рд╡рд░рдгрд┐рдХрд╛ 'рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВред

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

рдлрд┐рд░ рднреА, APNS: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдПрдХ рд╕реВрдЪрдирд╛ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЙрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╡рд╣ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЗрди рд╕реВрдЪрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
 @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Register device for receiving push notifications [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert)]; 

рдЙрд╕рдХреЗ рдмрд╛рдж, UIApplicationDelegate рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ: didRegisterForRemoteNotificationsWithDeviceToken: рдкрджреНрдзрддрд┐, рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ DeviceToken (id) рд╣реИ рдФрд░ рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдорд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╛рд╕ рдХрд╛ рдЖрд╡реЗрджрди рд╣реИ: didReceiveRemoteNotification: рд╡рд┐рдзрд┐, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, iOS рдкрддреНрд░рд┐рдХрд╛ рдкрд░ рджреЛ рдФрд░ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВред рдкрдВрдЦ - рдЧреЛрдкрдиреАрдпрддрд╛ рдиреАрддрд┐ URLред рддрдХрдиреАрдХреА рдкрдХреНрд╖ рд╕реЗ, рдпрд╣ рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИред рджреВрд╕рд░реА рд╕реАрдорд╛ iTunesConnect рдЖрдВрддрд░рд┐рдХ рдЦрд░реАрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдордЧреНрд░реА рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ 0 рдкреИрд╕реЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдореБрдлреНрдд рдкрддреНрд░рд┐рдХрд╛ рдЦрд░реАрджрдирд╛ рд╣реЛрдЧрд╛ред

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдЖрдИрдЯреНрдпреВрдиреНрд╕рдХрдиреЗрдХреНрдЯ рдЗрди-рдРрдк рдЦрд░реАрджрд╛рд░реА рдХрд╛ рдорддрд▓рдм рд╕реНрдЯреЛрд░ рдХрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред UserDefaults рдореЗрдВ, рдореБрдЭреЗ isFreeSubscribed рд╕рдВрдкрддреНрддрд┐ рдорд┐рд▓реА рд╣реИред рдореИрдВ рдЗрд╕реЗ рдЯреЗрдкреВ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдВрдЪрддрд╛ рд╣реВрдВ, рдФрд░ NO рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдЕрд▓рд░реНрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВред рд╕рдордЭреМрддреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛, рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░реЗрдВ
 SKProductsRequest *productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:@"FreeSubscription"]]; productsRequest.delegate=self; [productsRequest start]; 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдЗрди-рдРрдк рдЦрд░реАрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓рдиреЗ рдХреЗ рд▓рд┐рдП YES рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред SKProductsRequest рдХреЗ рд▓рд┐рдП ProductId рдХреЛ In-App рдЦрд░реАрдж рдХреЗ рддрд╣рдд iTunesConnect рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

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


All Articles