рдЙрджреНрджреЗрд╢реНрдп-рд╕реА: рд░реВрдмреА рджреЗрдЦреЛ

рдкрд╣рдЪрд╛рди


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

1. рдЧрддрд┐рд╢реАрд▓


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

2. рд╡рд╕реНрддреБ рдореЙрдбрд▓


рд░реВрдмреА рдореЗрдВ, рд╕рдм рдХреБрдЫ рдПрдХ рд╡рд╕реНрддреБ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдЪ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рд╕реА рдкрд░ рдПрдХ рдРрдб-рдСрди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ (рдЬреИрд╕реЗ рдХрд┐ рдЪрд╛рд░, рдлреНрд▓реЛрдЯ, рдбрдмрд▓, рдЗрдВрдЯ, рд╕реНрдЯреНрд░рдХреНрдЪрд░ ) рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдлрд╛рдЙрдВрдбреЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ рдЙрдирдХреЗ рдКрдкрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЖрд╡рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рдЪреАрдЬреЗрдВ рдЬреИрд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, рдореНрдпреВрдЯреЗрдмрд▓ рдПрд░реЗ, рд╣реИрд╢ рдЗрддреНрдпрд╛рджрд┐ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред

3. рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛


рд░реВрдмреА рдореЗрдВ, рдЬрдм рд╣рдо рдПрдХ рд╡рд╕реНрддреБ рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ:
object.send :method, args 

рдЕрд░реНрдерд╛рддреН, рдореИрд╕реЗрдЬ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдердб рдХреЙрд▓ рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдореЗрдВ, рдХреБрдЫ рдРрд╕рд╛ рд╣реА рд╣реЛрддрд╛ рд╣реИ:
 [object method]; 

рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд░рд╣рд╛ рд╣реИ, рдПрдХ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рдЧреИрд░-рдореМрдЬреВрдж рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рд╕рдВрдХрд▓рди рдЪрд░рдг рдкрд░, рдХреЗрд╡рд▓ рд░рдирдЯрд╛рдЗрдо рдкрд░ (рдЬреЛ рднрд╛рд╖рд╛ рдХреА рдЧрддрд┐рд╢реАрд▓рддрд╛ рд╕рд╛рдмрд┐рдд рд╣реЛрддреА рд╣реИ) рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧреАред рд╕рдВрдХрд▓рди рдХреЗ рд╕рдордп, [object method] C-th рдлрд╝рдВрдХреНрд╢рди objc_sendMsg(id object, SEL selector) рдХреЙрд▓ [object method] рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ farcaller рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ:
рдЧреИрд░-рдореМрдЬреВрдж рддрд░реАрдХреЛрдВ рдкрд░ clang3 рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджреЗ рд╕рдХрддрд╛ рд╣реИ

рд╡реИрд╕реЗ, C ++ рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ, рд░реВрдмреА рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ рд╡рд┐рдзрд┐рдпрд╛рдВ рдЖрднрд╛рд╕реА рд╣реИрдВ ред

4. рд▓рдХреНрд╖реНрдореА рдЯрд╛рдЗрдкрд┐рдВрдЧ


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

5. рдХрдХреНрд╖рд╛ рдШреЛрд╖рдгрд╛рдПрдБ, рд╡рд╕реНрддреБ рдирд┐рд░реНрдорд╛рдг, рдФрд░ рдЧреБрдг


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

рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА (рдЖрд╡рдВрдЯрд┐рдд) рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ initWithтАж ( init , initWithтАж )
 MyClass * myObject = [[MyClass alloc] init]; 

рдЙрджрд╛рд╣рд░рдг рдЪрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рджреЛ рддрд░реАрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - рдЧреЗрдЯреНрдЯрд░ рдФрд░ рд╕реЗрдЯрд░ред рд░реВрдмреА рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ attr_accessor :var рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ рд╣рдореЗрдВ рдХреНрд▓рд╛рд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрд╢рди рд╕реЗрдХреНрд╢рди рдореЗрдВ type * variable рд▓рд┐рдЦрдирд╛ рд╣реЛрддрд╛ рд╣реИ, @property(retain) type * variable; рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╡рд░реНрдгрди рдХреЗ рдмрд╛рдж, рдФрд░ @synthesize variable; рдХрдХреНрд╖рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВред

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

6. рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рдорд┐рд╢реНрд░рдг


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

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

рдпрд╣ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рдзрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреА рд╣реИ рдЬреЛ рдХрд┐ Serializable рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ serialize рд╕рдВрджреЗрд╢ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд░рд╣рд╛ рд╣реИред

7. рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ рдФрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░


рдЕрдЧрд░ рд╣рдо рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд░реВрдмреА рдореЗрдВ рд╣рдо рдмрд╕ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

 class String def my_super_method тАЬNew stringтАЭ end end 


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо my_super_method рдкрджреНрдзрддрд┐ рдХреЛ рд╡рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ)ред рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдореЗрдВ, рд╣рдо рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 @interface NSString (HelloWorld) + (NSString *)helloWorld; @end @implementation NSString (HelloWorld) + (NSString *)helloWorld { return @тАЭHello, World!тАЭ; } @end 


рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдХреНрд▓реИрд╕ + рдиреЗрдо рдХреИрдЯреЗрдЧрд░реА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ - NSString + HelloWorld.m рдФрд░ NSString + HelloWorld.h, рдФрд░ рдлрд┐рд░ рдЖрдпрд╛рддрд┐рддред

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

рдореИрдВ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ:


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


All Articles