рдХреИрдкреНрдкреБрдХрд┐рдиреЛ рдХрд╛ рдкрд░рд┐рдЪрдп

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

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

рдХрд╣рд╛рдиреА


2008 рдореЗрдВ, рдлреНрд░рд╛рдВрд╕рд┐рд╕реНрдХреЛ рдЯреЙрд▓реНрдорд╛рд╕реНрдХреА, рдЯреЙрдо рд░реЙрдмрд┐рдиреНрд╕рди рдФрд░ рд░реЙрд╕ рдмрд╛рдЙрдЪрд░ (рдлреНрд░рд╛рдВрд╕рд┐рд╕реНрдХреЛ рдФрд░ рд░реЙрд╕ рдкреВрд░реНрд╡ рдПрдкреНрдкрд▓ рдХрд░реНрдордЪрд╛рд░реА рд╣реИрдВ) рдиреЗ 280 рдЙрддреНрддрд░ рдмрдирд╛рдП рдФрд░ 280 рд╕реНрд▓рд╛рдЗрдб , рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рдкреНрд░рд╕реНрддреБрддрд┐ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред рдпрд╣ рдЕрднреА рднреА рдЕрдкрдиреЗ рд▓реБрдХ рдФрд░ рдлреАрд▓ рдХреЗ рд╕рд╛рде рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рддрдм рдпрд╣ рдХреБрдЫ рдЕрд╕рддреНрдп рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, 280 рд╕реНрд▓рд╛рдЗрдбреНрд╕ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдЙрддреНрдкрд╛рдж рдирд╣реАрдВ рдерд╛, рдпрд╣ рд╕рд┐рд░реНрдл рдирдП рд╡реЗрдм рдврд╛рдВрдЪреЗ, рдХреИрдкреНрдкреБрдХрд┐рдиреЛ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдерд╛ред

рдЙрд╕реА рд╡рд░реНрд╖ 4 рд╕рд┐рддрдВрдмрд░ рдХреЛ, рдХреИрдкреНрдкреБрдХрд┐рдиреЛ рдХреЛ рдПрд▓рдЬреАрдкреАрдПрд▓ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рддреБрд░рдВрдд рдЧрд┐рдЯрд╣рдм рдкрд░ рд╣рд┐рдЯ рдмрди рдЧрдпрд╛ред рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдХреЗ рдПрдХ рд╕рдореБрджрд╛рдп рдиреЗ рдЧрдарди рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рддрдм рд╕реЗ, рдпрд╣ рд╕рдореБрджрд╛рдп рдХреЗрд╡рд▓ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рд╣реИ рдФрд░ рдХреИрдкреНрдкреБрдХрд┐рдиреЛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реБрдЖ рд╣реИред

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

рдЕрдлрд╡рд╛рд╣реЛрдВ рдХреЗ рдореБрддрд╛рдмрд┐рдХ, 2010 рдХреА рдЧрд░реНрдорд┐рдпреЛрдВ рдореЗрдВ, рдХреИрдкрдЯреБрдЪреАрдиреЛ рдФрд░ рдПрдЯрд▓рд╕ рддрдм рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдП, рдЬрдм рдореЛрдЯреЛрд░реЛрд▓рд╛ рдиреЗ рдЕрдкрдиреА рд╕рднреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде 280 рдЙрддреНрддрд░ рдЦрд░реАрджреЗ, $ 20 рдорд┐рд▓рд┐рдпрди рдЦрд░реНрдЪ рдХрд┐рдПред рдЦрд░реАрдж рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЙрджреНрджреЗрд╢реНрдп рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╣реИред рдХрдИ рджреБрд╖реНрдЯ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХреИрдкреНрдкреБрдХрд┐рдиреЛ рдХреА рдореГрддреНрдпреБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдзрд╛ рд╕рд╛рд▓ рдмреАрдд рдЪреБрдХрд╛ рд╣реИ, рдлрд┐рд░ рднреА рд░реВрдкрд░реЗрдЦрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИ, рдФрд░ 23 рдлрд░рд╡рд░реА рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 0.9 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

рд╕рд┐рджреНрдзрд╛рдВрдд


Cappuccino рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ Objective-J рднрд╛рд╖рд╛ рд╣реИред рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдРрдб-рдСрди рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ-рд╕реА, рд╕реА рдХреЗ рд▓рд┐рдП рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП, рдХрдИ рдХреЗ рд▓рд┐рдП, рд╢реБрд░реБрдЖрдд рдореЗрдВ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдРрдб-рдЗрди рдПрдХ рднрд╛рд╖рд╛ рдкрд░ рдХреНрдпреЛрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдмрд╣реБрдд рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред

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

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

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

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

рдЖрдЗрдП рдЙрджреНрджреЗрд╢реНрдп-рдЬреЗ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд╣ рдЬреЛ рдореБрдЦреНрдп рдЪреАрдЬ рд▓рд╛рддрд╛ рд╣реИ рд╡рд╣ рд╣реИ рдХрдХреНрд╖рд╛рдПрдВред рдЙрдиреНрд╣реЗрдВ @implementation рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  @ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡реНрдпрдХреНрддрд┐: CPObject
 {
     CPString рдирд╛рдо @accessors;
 }

 (рдЖрдИрдбреА) initWithName: (CPString) рдирд╛рдо
 {
     рдЕрдЧрд░ (рд╕реНрд╡ = [рд╕реБрдкрд░ init])
         рдирд╛рдо = рдирд╛рдо;
     рд╕реНрд╡ рд▓реМрдЯ рдЖрдУ;
 }

 (рд╡реНрдпрдХреНрддрд┐) personWithName: (CPString) рдирд╛рдо
 {
     рд╡рд╛рдкрд╕реА [[рд╡реНрдпрдХреНрддрд┐ рдЖрд╡рдВрдЯрд┐рдд] initWithName: aName];
 }

 @end 

@implementation рдФрд░ @end рдмреАрдЪ рдПрдХ рд╡рд░реНрдЧ рд╡рд░реНрдгрди рд╣реИред Cappuccino рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд╢реАрд░реНрд╖ CPObject рд╕реЗ Person рд╡рд░реНрдЧ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рдлрд┐рд░, рд╡рд░реНрдЧ рд╕рджрд╕реНрдп рдЪрд░ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред name - рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рджрд╕реНрдп рдЪрд░ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП @accessors рдФрд░ рд╕реЗрдЯрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ ( @accessors рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж)ред рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рдЬреЗ рдореЗрдВ setName: рдХреЗ рдирд╛рдордХрд░рдг рдХрд╛ рдирд┐рдпрдо рдХреБрдЫ рдЧреИрд░-рдорд╛рдирдХ рд╣реИ - рдпрд╣ name рдФрд░ setName: рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдХреИрдкреБрдЪрд┐рдиреЛ рдЖрдВрддрд░рд┐рдХ рддрдВрддреНрд░ рдЗрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред

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

  [рд╡рд╕реНрддреБ рд╕рдВрджреЗрд╢]
 [рд╕рдВрджреЗрд╢ рдСрдмреНрдЬреЗрдХреНрдЯрдкреИрд░рдореАрдЯрд░: рдорд╛рди]
 [рдкреИрд░рд╛рдореАрдЯрд░ 1 рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рд╡рд╕реНрддреБ: value1 рдкреИрд░рд╛рдореАрдЯрд░ 2: value2]
 ... 

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЙрд▓рд┐рдВрдЧ рдЧреЗрдЯрд░реНрд╕ рдФрд░ рдПрдХ Person рдХреА рд╢реНрд░реЗрдгреА рдХреЗ Person рдХрд╛ рдмрд╕рд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

  var рдирд╛рдо = [aPerson name];
 [aPerson рд╕реЗрдЯрдирд╛рдо: "рд╡рд╛рд╕реНрдпрд╛"]; 

рд╕рджрд╕реНрдп рдЪрд░ рдХреЗ рдмрд╛рдж рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, @end рдХреАрд╡рд░реНрдб рд╕реЗ рдкрд╣рд▓реЗред рдХрдХреНрд╖рд╛ рд╡рд┐рдзрд┐рдпрд╛рдВ рдПрдХ рдкреНрд▓рд╕ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ, рдХрдХреНрд╖рд╛ рдХреА рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рдзрд┐рдпрд╛рдВ рдорд╛рдЗрдирд╕ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВред

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

Objective-J рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рдХреЗ рдирд╛рдо рдЖрдорддреМрд░ рдкрд░ init рд╢рдмреНрдж рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдкрд╣рд▓реЗ рд╕реБрдкрд░рдХреНрд▓рд╛рд╕ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдФрд░ self рд╡рд╛рдкрд╕ рдХрд░реЗрдВред рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рддреНрд░реБрдЯрд┐ рдХреЛ nil рдорд╛рди рджреЗрдХрд░ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╣рд╛рдБ, рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп, рдЕрдкрд╡рд╛рдж рдЕрднреА рддрдХ рдлреИрд╢рди рдореЗрдВ рдирд╣реАрдВ рдереЗ, рдЗрд╕рд▓рд┐рдП рдХреЛрдХреЛ рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЙрдирдХреЗ рд╕рд╛рде рдХреИрдкреНрдкреБрдХрд┐рдиреЛ рдбрд┐рд╕реНрдкреЗрдВрд╕)ред

рд╢реИрд▓реА рдПрдХрддрд╛ рдХреЗ рд▓рд┐рдП, Objective-J, Objective-C рд╕реЗ рд▓рд┐рдП рдЧрдП рддреАрди рдЪрд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпреЗ nil , YES рдФрд░ NO ред рд╡реЗ рдХреНрд░рдорд╢рдГ null , true рдФрд░ false рд╕рдорд╛рди рд╣реИрдВред рдХреИрдкреНрдкреБрдХрд┐рдиреЛ рдХреЛрдбрд┐рдВрдЧ рд╕реНрдЯрд╛рдЗрд▓ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред

рдЗрд╕ рдирд┐рдмрдВрдз рдХреЗ рдХрдИ рдкрд╛рдардХреЛрдВ рдХреА рддрд░рд╣, рдореИрдВрдиреЗ рдХрднреА рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕реНрдкрд╖реНрдЯ рдерд╛ рдХрд┐ рдХреНрд▓рд╛рд╕ рдХреЛ @implementation рджреНрд╡рд╛рд░рд╛ рдХреНрдпреЛрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, @class ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдХреЗ рд▓рд┐рдП: рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА, рдРрдб-рдСрди рд╕реА рдХреЗ рд░реВрдк рдореЗрдВ, рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ (* рд╣реЗрдбреНрд╕ рд╕реЗ .h) рдФрд░ рдбреЗрдлрд┐рдирд┐рд╢рди рдлрд╛рдЗрд▓реНрд╕ (* .m рд╕реЗ рдореИрд╕реЗрдЬ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреНрд▓рд╛рд╕реЗрд╕ ( @interface ) рдФрд░ рдбрд┐рдлрд╛рдЗрди ( @implementation @interface ) рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред ред рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рдЬреЗ рдХреЛ рдШреЛрд╖рдгрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ @implementation ред

рдЕрднреНрдпрд╛рд╕


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

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

  рдХреИрдк рдЬреАрди "рдЯреНрд╡рд┐рдЯрд░ рдЦреЛрдЬ" 

рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИ, рд╣рдо рд╕реВрдЪрдХрд╛рдВрдХ-рдбреАрдмрдЧ.html рдФрд░ AppController .j (* .j рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рдЬреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдорд╛рдирдХ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИ) рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред

Index-debug.html рдЦреЛрд▓реЗрдВред Google Chrome рдХреА рд╕рдЦреНрдд рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ Cappuccino рдХреЛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИ: // рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рдЙрдард╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрдиреНрдп рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рд╣рдо рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдПрдкреНрд▓реАрдХреЗрд╢рди рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ! рдХреИрдкреБрдЪрд┐рдиреЛ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рдЬреЗ рдХреЛрдб рдХреЛ рдмреНрд░рд╛рдЙрдЬ рдкрд░, рд╕рд╣реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдЖрдк рд╕рд┐рд░реНрдл рдкреЗрдЬ рдХреЛ рд░рд┐рдлреНрд░реЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреА рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ "рдХреЙрдореНрдмреИрдЯ" рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдХрдХреНрд╖рд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдХреИрдкреНрдкреБрдХрд┐рдиреЛ рдХреЗ рджреЛ рдореБрдЦреНрдп рднрд╛рдЧреЛрдВ Foundation рдФрд░ AppKit рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред Foundation рдореЗрдВ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдФрд░ AppKit рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред

  @import <Foundation / Foundation.j>
 @import <AppKit / AppKit.j> 

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

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

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╡рд┐рдВрдбреЛ рдФрд░ рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдмрдирд╛рдПрдВрдЧреЗ:

  var рд╡рд┐рдВрдбреЛ = [[CPWindow рдЖрдмрдВрдЯрд┐рдд] initWithContentRect: CGRectMake (100, 100, 250, 70)
                                          рд╕реНрдЯрд╛рдЗрд▓рдорд╛рд╕реНрдХ: CPTitledWindowMask],
     contentView = [рд╡рд┐рдВрдбреЛ contentView],
     textField = [[CPTextField рдЖрд╡рдВрдЯрд┐рдд] initWithFrame: CGRectMake (25, 20, 200, 30)]; 

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди CGRectMake(x, y, width, height) рдЙрд╕ рдЖрдпрдд рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛ред рд╕рд╛рдордЧреНрд░реА contentView рд╡рд┐рдзрд┐ рд╡рд┐рдВрдбреЛ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдПрдХ рджреГрд╢реНрдп рд▓реМрдЯрд╛рддреА рд╣реИред

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

рдЕрдм рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдлрд╝реНрд░реЗрдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

  [textField setEditable: YES];
 [textField setBezeled: YES]; 

рд▓рдХреНрд╖реНрдп рдФрд░ рдХреНрд░рд┐рдпрд╛ рд╕реЗрдЯ рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╡рд┐рдзрд┐ рдЬрд┐рд╕реЗ рдпрд╣ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рдлрд╝реАрд▓реНрдб рдореЗрдВ рдПрдВрдЯрд░ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  [textField setTarget: рдЖрддреНрдо];
 [textField setAction: @selector (didSubmitTextField :)]; 

рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдкрд╛рд░рд┐рдд рдорд╛рди рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП @selector рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдлрд╝реАрд▓реНрдб рдХреЛ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕реЗ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВ:

  [contentView addSubview: textField];
 [рд╡рд┐рдВрдбреЛ рдореЗрдХрдлреНрд░рд╕реНрдЯрд░реЗрдиреНрдбрд░: рдЯреЗрдХреНрд╕реНрдЯрдлрд┐рд▓реНрдб]; 

рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ:

  [рдЦрд┐рдбрд╝рдХреА рдХреЗрдВрджреНрд░];
 [рд╡рд┐рдВрдбреЛ рд╕реЗрдЯрд┐рдЯреЗрд▓: "рдЯреНрд╡рд┐рдЯрд░ рд╕рд░реНрдЪ"];
 [рдЦрд┐рдбрд╝рдХреА рдЖрджреЗрд╢: рд╕реНрд╡рдпрдВ]; 

рдЖрд╡реЗрджрди рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХрдХрд░рдг рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЕрдм рд╣рдо Enter рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЕрд░реНрдерд╛рддред didSubmitTextField: рд╡рд┐рдзрд┐ didSubmitTextField:

  - (рд╢реВрдиреНрдп) didSubmitTextField: (CPTextField) textField
 {
     var searchString = [textField stringValue];
     рдпрджрд┐ (рдЦреЛрдЬ!)
         рд╡рд╛рдкрд╕реА;
     [[[SearchWindowController рдЖрд╡рдВрдЯрд┐рдд] initWithSearchString: searchString] showWindow :ilil];
     [textField setStringValue: ""];
     [[textField window] makeKeyAndOrderFront: nil];
 } 

рд╣рдо рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХрд╛ рдорд╛рди рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдпрд╣ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ, рддреЛ SearchWindowController рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВ, рдЗрд╕рдХреА рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдПрдВ, рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдЦрд╛рд▓реА рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреА рд╡рд┐рдВрдбреЛ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдПрдВред рдЫреЛрдЯреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ SearchWindowController рдХреНрд▓рд╛рд╕ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╣реИред

рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ SearchWindowController.j рдФрд░ CPWindowController рд╕реЗ рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ CPWindowController :

  @ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди SearchWindowController: CPWindowController
 {
 }

 @end 

рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдЬреЛ рдПрдХ рдЦрд┐рдбрд╝рдХреА рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ:

  - (рдЖрдИрдбреА) initWithSearchString: (CPString) searchString
 {
     рдЕрдЧрд░ (рд╕реНрд╡ = [рд╕реБрдкрд░ init]) {
         var рд╡рд┐рдВрдбреЛ = [[CPWindow рдЖрдмрдВрдЯрд┐рдд] initWithContentRect: CGRectMake (10, 30, 300, 400)
                                                  styleMask: CPTitledWindowMask |  CPClosableWindowMask |  CPResizableWindowMask];
         [рдЦрд┐рдбрд╝рдХреА setTitle: searchString];
         [рд╕реНрд╡ рд╕реЗрдЯрд╡рд┐рдиреНрдбреЛ: рд╡рд┐рдВрдбреЛ];
         var request = [CPURLRequest requestWithURL: "http://search.twitter.com/search.json?q=" + encodeURIComponent (searchString)];
         [CPJSONPConnection sendRequest: рдЕрдиреБрд░реЛрдз рдХреЙрд▓рдмреИрдХ: "рдХреЙрд▓рдмреИрдХ" рдкреНрд░рддрд┐рдирд┐рдзрд┐: рд╕реНрд╡рдпрдВ];
     }
     рд╕реНрд╡ рд▓реМрдЯ рдЖрдУ;
 } 

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЯреНрд╡рд┐рдЯрд░ рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИрдВрдбрд▓рд░ рд▓рд┐рдЦреЗрдВ:

  - (рд╢реВрдиреНрдп) рдХрдиреЗрдХреНрд╢рди: (CPJSONPConnection) рдХрдиреЗрдХреНрд╢рди didReceiveData: (рдСрдмреНрдЬреЗрдХреНрдЯ) рдбреЗрдЯрд╛
 {
     var contentView = [[рд╕реНрд╡ рд╡рд┐рдВрдбреЛ] contentView];

     рдЕрдЧрд░ (data.results.length) {
         var рд╕реАрдорд╛ = [contentView рд╕реАрдорд╛],
             collectionView = [[CPCollectionView рдЖрд╡рдВрдЯрди] initWithFrame: рд╕реАрдорд╛];
         [collectionView setAutoresizingMask: CPViewWidthSizable];
         [рд╕рдВрдЧреНрд░рд╣ рджреГрд╢реНрдп setMaxNumberOfColumns: 1];
         [collectionView setMinItemSize: CGSizeMake (200, 100)];
         [collectionView setMaxItemSize: CGSizeMake (10000, 100)];

         var рдЖрдЗрдЯрдордкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк = [[CPCollectionViewItem рдЖрдмрдВрдЯрд┐рдд] init];
         [itemPrototype setView: [TweetView new]];
         [collectionView setItemPrototype: itemPrototype];
         [рд╕рдВрдЧреНрд░рд╣ рджреГрд╢реНрдп рд╕реЗрдЯ рдХрд░реЗрдВ: data.results];

         var рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдп = [[CPScrollView рдЖрд╡рдВрдЯрди] initWithFrame: рд╕реАрдорд╛];
         [рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рд╕реЗрдЯрдСрдЙрдЯрд░реНрд╕рд╛рдЗрдЬрд┐рдВрдЧ рдореЗрд╕реНрдХ: CPViewWidthSizable |  CPViewHeightSizable]
         [рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдп рд╕реЗрдЯрдбрд╛рдпрдореЗрдВрдореЗрдВрдЯ рд╡реНрдпреВ: рд╕рдВрдЧреНрд░рд╣ рджреГрд╢реНрдп];
         [contentView addSubview: рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдп];
     } {
         var рд▓реЗрдмрд▓ = [CPTextField labelWithTitle: "рдиреЛ рдЯреНрд╡реАрдЯ"],
             boundsSize = [contentView boundsSize];
         [рд▓реЗрдмрд▓ рд╕реЗрдЯрд╕реЗрдВрдЯрд░: CGPointMake (boundsSize.width / 2, boundsSize.height / 2)];
         [рд▓реЗрдмрд▓ setAutoresizingMask: CPViewMinXMargin |  CPViewMaxXMargin |  CPViewMinYMargin |  CPViewMaxYMargin];
         [contentView addSubview: рд▓реЗрдмрд▓];
     }
 } 

рдЯреНрд╡реАрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреНрд▓рд╛рд╕реЗрд╕ CPCollectionView , CPCollectionViewItem рдФрд░ CPScrollView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди TweetView рд╡рд░реНрдЧ TweetView рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

рдпрд╣ TweetView рд╡рд░реНрдЧ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ:

  @ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд▓рд░рд╡: CPView
 {
     CPImageView imageView;
     CPTextField userLabel;
     CPTextField tweetLabel;
 }

 - (рд╢реВрдиреНрдп) setRepresentedObject: (рдЖрдИрдбреА) рдЯреНрд╡реАрдЯ
 {
     рдЕрдЧрд░ (рдЫрд╡рд┐ рджреГрд╢реНрдп) {
         imageView = [[CPImageView рдЖрд╡рдВрдЯрди] initWithFrame: CGRectMake (10, 5, 48, 48)];
         [рд╕реНрд╡рдпрдВ addSubview: imageView];

         userLabel = [[CPTextField рдЖрд╡рдВрдЯрд┐рдд] initWithFrame: CGRectMake (65, 0, -60, 18)];
         [userLabel setAutoresizingMask: CPViewWidthSizable];
         [userLabel setFont: [CPFont boldSystemFontOfSize: 12]];
         [рдЖрддреНрдо AddSubview: userLabel];

         tweetLabel = [[CPTextField рдЖрд╡рдВрдЯрд┐рдд] initWithFrame: CGRectMake (65, 18, -60, 100)];
         [tweetLabel setAutoresizingMask: CPViewWidthSizable];
         [tweetLabel setLineBreakMode: CPLineBreakByWordWrapping];
         [рдЖрддреНрдо AddSubview: tweetLabel];
     }
     [imageView setImage: [[CPImage рдЖрд╡рдВрдЯрди] initWithContentsOfFile: tweet.profile_image_url рдЖрдХрд╛рд░: CGSizeMake (48, 48)]];
     [userLabel setStringValue: tweet.from_user];
     [tweetLabel setStringValue: tweet.text];
 }

 @end 

setRepresentedObject: рд╡рд┐рдзрд┐ рдПрдХ рдЕрд╡рддрд╛рд░ рдЫрд╡рд┐ рдФрд░ рджреЛ рдЯреИрдЧ рдмрдирд╛рддреА рд╣реИ, рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдЯреНрд╡реАрдЯ рдХреЗ рд╕рд╛рдеред

рдЕрдм рдлрд┐рд░ рд╕реЗ index-debug.html рдЦреЛрд▓реЗрдВ рдФрд░ рдХреБрдЫ рд╢рдмреНрджреЛрдВ рдХреЛ рджреЗрдЦреЗрдВред рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:


рдЖрдк рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?


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

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


All Articles