Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ objective c
Objective-C Runtime. Π’Π΅ΠΎΡΠΈΡ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Runtime?
Objective-C Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΡΡ ΠΊΠ°ΠΊ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° Π½Π°Π΄ ΡΠ·ΡΠΊΠΎΠΌ C, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΠ°Ρ ΠΊ Π½Π΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, Objective-C β ΡΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π½Π°Π΄ ΠΎΠ±ΡΡΠ½ΡΠΌ C. ΠΠΌΠ΅Π½Π½ΠΎ Runtime, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΡ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΄ΡΡ Π°ΡΡ Π² ΡΠ·ΡΠΊ ΠΆΠΈΠ·Π½Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡ Π΅Π³ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠΠ.
ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΎΠ±ΡΡΠ½ΠΎΠΉ C-ΡΡΡΡΠΊΡΡΡΠΎΠΉ. ΠΠ°ΠΆΠ΄ΡΠΉ Objective-C ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡ β ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ isa-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. ΠΡΠΌΠ°Ρ, Π²ΡΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ Π΅Π³ΠΎ ΠΏΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΊΠ»Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ:
ΠΠ»Π°ΡΡ Π² Objective-C β ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ Ρ Π½Π΅Π³ΠΎ ΡΠΎΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ isa-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Β«ΠΊΠ»Π°ΡΡ ΠΊΠ»Π°ΡΡΠ°Β», ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠ°ΠΊΠ»Π°ΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ Objective-C. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, Π‘-ΡΡΡΡΠΊΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠ°:
Π€ΡΠ½ΠΊΡΠΈΠΈ Runtime-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΡΠΈΠΌΠ΅Ρ 1. ΠΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Runtime Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ plain old Objective-C ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠ²ΠΎΠΉΡΡΠ²:
2013-05-04 15:54:01.992 Test[40675:11303] COConcreteObject: <
name = Foo;
quantity = 10;
title = bar;
>
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² Objective-C ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡΡΠ»ΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ objc_msgSend :
ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΏΡΠΈΡΠ½Π°ΠΌ Π²Π°Ρ Π½Π΅ ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ β Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΠ²Π°ΡΠ΄ΠΈΠ½Π³ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΈΠΌΠ΅Ρ 2. Method Swizzling
ΠΡΠΈΠΌΠ΅Ρ 3. ΠΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ
ΠΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π² Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°. ΠΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ UITableView β ΡΡΡΠ»ΠΊΡ Π½Π° Β«Π·Π°Π³Π»ΡΡΠΊΡΒ», ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΡΡΡΠ°:
Β«ΠΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈΒ» ΡΡΠΎΡ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΡ ΡΡΡΠ»ΠΎΠΊ:
ΠΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΠΌ. Π. Π. ΠΠ°ΡΠΌΠ°Π½Π°
Bauman National Library
ΠΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ
Objective-C
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Objective-C
ΠΠ»Π°ΡΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ ΡΠ·ΡΠΊΠ° Objective-C, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π² ΡΠ·ΡΠΊΠ΅ Π‘, ΠΈ ΠΊΠ»Π°ΡΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ Objective-C ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈ ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ «ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ».
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° @interface, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΡΠ΅Π»ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ Π² ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ . Π Objective-C Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Ρ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° NSObject. ΠΡΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ Π²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Π² Objective-Π‘. ΠΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ: Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° Box:
Π§Π»Π΅Π½Ρ-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌΠΈ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²
ΠΠ±ΡΠ°Ρ ΡΠΎΡΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Objective-C Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ ΡΠ΅Π»Π°.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° max(). ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°: num1 ΠΈ num2, ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠΉ ΠΈΠ· Π½ΠΈΡ :
ΠΠ»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅ΠΌΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Objective-C
ΠΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ°. ΠΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΠ½ΠΎ Ρ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ². Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° (.). ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π΄Π²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° Box:
Π‘Π²ΠΎΠΉΡΡΠ²Π°
Π‘Π²ΠΎΠΉΡΡΠ²Π° Π²Π²ΠΎΠ΄ΡΡΡΡ Π² Objective-C Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅
Objective-C, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΡΡΠ³Π°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ°, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π΅ΡΠ΅ ΠΈ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° «Wiz». Π ΡΠ·ΡΠΊΠ΅ Π‘++, ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅ΠΆΠΈΠΌΡ «public», «protected» ΠΈΠ»ΠΈ «private». ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° :: (Bar. Wiz::). Π Objective-C, ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ° «public». ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° «super», ΠΊΠ°ΠΊ Π² ΡΠ·ΡΠΊΠ΅ Java.
Π€ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»
Π€ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² Π»ΡΠ±ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ. ΠΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ².
Π ΡΠ·ΡΠΊΠ΅ C++, ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΡΠΈΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Π² Π‘++ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ «ΠΌΠΎΡΠ½ΡΠΌ», ΡΠ΅ΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π² Objective-C, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ»Π°ΡΡ «Foo» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ mousePressed, mouseClicked ΠΈ keyPressed. ΠΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ «Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Ρ» ΠΌΡΡΠΈ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. Π Objective-C, ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ. Π’ΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π±Π»ΠΎΠ½Ρ Π² Π‘++. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅Ρ Π² Objective-C.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ
Π C++, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΊ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² Objective-C. ΠΠΎΡ ΡΠΏΠΈΡΠΎΠΊ:
Objective-C Ρ Π½ΡΠ»Ρ
ΠΠ°Π½Π°Π»ΡΠ½Π°Ρ ΡΠ΅ΠΎΡΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΠΠ
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΈΡΠΊΠ°ΡΡ Π²ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΡΠΈ Π΅Π³ΠΎ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π½ΠΈΡ, ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎΠ²ΡΠ΅ ΡΠ·ΡΠΊΠΈ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊ Π½ΠΈΠΌ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ. Π’Π°ΠΊ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ (ΠΏΡΠΎΡΠ΅Π΄ΡΡ), ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ CALL\RET ΠΈ ΡΡΠ΅ΠΊΠ° (ΠΏΠΎ ΡΡΡΠΈ, ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΏΠΎΡΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ, Π° Π½Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π° ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ). ΠΠ°ΡΠ΅ΠΌ, ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ (ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΉΠ» β ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ), ΠΏΠΎΡΠΎΠ΄ΠΈΠ²ΡΠ°Ρ Π΄Π²ΡΡ ΡΡΠ°ΠΏΠ½ΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ: ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° (ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ) Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ.
Π ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΌΠ° ΠΊΠΎΠ΄Π° Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ, Ρ 1960Ρ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π½ΠΎΠ²Π°Ρ, ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°Π·Π±ΠΈΠ²ΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ β ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ . ΠΠ΅ ΡΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ (ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²) ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΏΠΎΡΡΠ»ΠΊΠΈ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ (ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°). ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ (ΠΊΠ»Π°ΡΡΠ°) Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π΄Π²ΡΡ Π²Π΅ΡΠ°Ρ : ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ (ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², ΡΠ»Π΅Π½ΠΎΠ²) ΠΈ Π½Π°Π±ΠΎΡΠ° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ (ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²), ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ.
ΠΠ»Π°ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΠΎΡΠΌΠ»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ ΡΠΈΠΏ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ (ΡΠ·ΡΠΊΠΎΠ²ΡΡ ) ΡΠΈΠΏΠ°Ρ Π΄Π°Π½Π½ΡΡ ΠΈ\ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠ°Ρ . ΠΠ»Ρ ΡΠ·ΡΠΊΠ° Π‘, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΡΠΊΡΡΡΠ° (struct). Π Π½Π°Π±ΠΎΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅.
ΠΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΡΡΠ°Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ (Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠΈ), Π½Π°Π·Π²Π°Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
ΠΠ°Π±ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ. ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ° (Π±Π΅Π· Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°) ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΠΈ. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΊΠ»Π°ΡΡ ΠΈ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠΌΠ΅Π΅ΡΡΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½Ρ x ΡΠΈΠΏΠ° float ΠΈ ΠΊ Π½Π΅ΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (ΠΌΠ΅ΡΠΎΠ΄) doubleX, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ°.
ΠΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΠ»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π° Π½Π΅Π³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ (Ρ.Π΅. Π²ΡΠ·Π²Π°ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»), Π½ΠΎ, ΠΏΠΎ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ΅Π½. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° Auto Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Move, Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΡΡΠΎ Π² ΡΠΏΠΈΡΠΊΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠ° Auto, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠ΅ (Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠ΅) ΠΊΠ»Π°ΡΡΡ Ford ΠΈ Subaru. ΠΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ°, Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΡΡΠ»ΠΊΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ· Π½Π΅ΠΊΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΠΏΡΠΈΠ½ΡΡΡ ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° Π½Π΅Π³ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ, Π° Π½Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠ»Π°ΡΡΡ.
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΡΡΠ°Π» Simula67. ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Smalltalk. Π Π² 80Ρ Π½Π°ΡΠ°Π» ΠΎΡΠΎΡΠΌΠ»ΡΡΡΡΡ Π‘++ β ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ·ΡΠΊ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ Π² 90Ρ ΠΏΠΎΡΠΎΠ΄ΠΈΠ»ΠΎ ΡΡΠ΄ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌ ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈ ΠΎΠΊΠ°Π·Π°Π»ΠΎ Π½Π΅ΠΎΠ±ΡΠ°ΡΠΈΠΌΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π²ΠΈΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅, ΠΈ Π½Π° ΡΠ·ΡΠΊ Objective-C.
Π§ΡΡΡ-ΡΡΡΡ ΠΈΡΡΠΎΡΠΈΠΈ
Objective-C Π²ΠΎΠ·Π½ΠΈΠΊ Π² 80-x ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π‘ Π² ΡΡΠΎΡΠΎΠ½Ρ Smalltalk. ΠΡΠΈΡΠ΅ΠΌ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΡΠ° ΡΠΎΡΡΠΎΡΠ»Π° Π² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ Π΄Π»Ρ Π½ΠΈΡ (ΠΊΠΎΡΠΎΡΡΠΉ, ΠΏΡΠΎΡ ΠΎΠ΄Ρ ΠΏΠΎ ΠΊΠΎΠ΄Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π» ΠΈΡ Π² ΠΎΠ±ΡΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Π‘), Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (ΡΡΠΈ Π²ΡΠ·ΠΎΠ²Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠ΅ΠΉ). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Objective-C Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π»ΡΡ ΠΊΠ°ΠΊ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° Π½Π°Π΄ C. Π ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΡΠΌΡΡΠ»Π΅ ΡΡΠΎ ΡΠ°ΠΊ ΠΈ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ: ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠΈΡΡΠΎΠΌ Π‘, Π° ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ Π½Π΅ΠΉ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈΠ· Objective-C (ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ), ΠΈΠ»ΠΈ ΠΆΠ΅ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π‘ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π½Π° Objective-C. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²ΡΠ΅ ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Π‘++. Π 1988 NeXT (Π° Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ Apple) Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π»Π° Objective-C ΠΈ Π½Π°ΠΏΠΈΡΠ°Π»Π° Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ (ΠΏΠΎ ΡΡΡΠΈ SDK). Π 1992 ΠΊ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΡΠ·ΡΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° GNU Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° OpenStep. Π‘ ΡΠ΅Ρ ΠΏΠΎΡ GCC ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Objective-C. ΠΠΎΡΠ»Π΅ ΠΏΠΎΠΊΡΠΏΠΊΠΈ NeXT, Apple Π²Π·ΡΠ»Ρ ΠΈΡ SDK (ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, IDE) Π·Π° ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΎΠΊ. IDE Π΄Π»Ρ ΠΊΠΎΠ΄Π° Π½Π°Π·Π²Π°Π»ΠΈ Xcode, Π° Π΄Π»Ρ GUI β Interface Builder. Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Cocoa Π΄Π»Ρ GUI ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΎΠΊ (ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ) Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΡΠΈΠΌΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Objective-C.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Objective-C
ΠΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ
Π§ΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΌΠ΅ΡΠΎΠ΄ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π°ΡΡ Π΅ΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ΅ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄. Π’Π°ΠΊΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ΅Π»Π΅ΠΊΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Π°. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΠΎΡΡΠ»ΠΊΠΈ ΡΠ°ΠΊΠΎΠ²:
Π ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°:
ΠΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ°Π²ΠΈΡΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅. Π‘ΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠΉ β ΡΡΠΎΠ»ΡΠΊΠΎ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°:
ΠΠ΅ΡΠΎΠ΄Ρ Ρ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΡΡΠ²ΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΠ·ΡΠ²Π°ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ:
ΠΠΎΡΡΠ»ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ C, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ (ΠΌΠΎΠΆΠ΅Ρ void) Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
ΠΡΠΈ ΠΏΠΎΡΡΠ»ΠΊΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ nil ΠΎΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠΏΠ°Π΄Π°Π΅Ρ. ΠΡΠΈ ΠΏΠΎΡΡΠ»ΠΊΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊΠ»Π°ΡΡΡ, Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π²ΡΠ΅ΠΌΡ Π·Π°ΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅, Π±ΡΠ΄ΡΡΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ΅Π½Π½ΡΠΌ, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ Π²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊ Π½Π΅Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π»ΠΈ Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π° ΠΊΠΎΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π±Π»ΠΎΠ½ ΠΊΠΎΠ΄Π°:
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΠΎΡΡΠ»ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π² Π‘-ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠΌ:
Π’ΠΈΠΏ SEL, ΠΏΠΎ ΡΡΡΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ char const *, Π½ΠΎ Π»ΡΡΡΠ΅ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ int, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΡΡΡΡ ΡΠ΅Π»ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ².
ΠΠΎΠ»ΡΠ·ΡΡΡΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ isa ΠΎΠ±ΡΠ΅ΠΊΡΠ° receiver (ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Foundation, Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π»Ρ Cocoa, Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ NSObject, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°Π»ΠΈΡΠΈΠ΅ isa Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ), ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Ρ ΡΠ΅Π»ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ method. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π»Π΅ΠΊΡΠΎΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ, ΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ id ΠΎΠ±ΡΠ΅ΠΊΡΠ° (ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΅Π³ΠΎ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΡ) ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ objc_msgSend(). ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, ΠΎΡΠ΄Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΡΡΠ»ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°-ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΠΉ ΡΠ΅Π»Π΅ΠΊΡΠΎΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΡΡΠ½ΠΊΡΠΈΠΈ objc_msgSend() ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ² Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ Π²ΡΠ·ΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ² 12 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΡΠΎΠΊΠ΅ βaddObject:β. ΠΠ°Π»Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΡ objc_msgSend() Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠΏΠΈΡΠΊΡ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° receiver ΠΈ, Π½Π°ΠΉΠ΄Ρ Π΅Π³ΠΎ (ΠΏΡΡΡΡ ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° NSArray, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» ΠΌΠ΅ΡΠΎΠ΄ Ρ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠΌ 12), ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π²ΡΠ·ΠΎΠ² ΡΠΈΠΏΠ°:
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΌΠ΅ΡΠΎΠ΄Π° addObject ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° Π²ΡΠ³Π»ΡΠ΄Π΅Π» ΡΠ°ΠΊ:
Π’ΠΎ Π΅ΡΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π» Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΠΎ, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ β ΡΡΠΎ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π½Π°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ , ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π°Π΄ΡΠ΅ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π²ΠΎ Π²ΡΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ΡΠ²Π½ΠΎ. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ Π΄Π°Π΅Ρ ΠΏΠΎΠ½ΡΡΡ ΠΌΠΈΠ½ΡΡ («-«), ΡΡΠΎΡΡΠΈΠΉ ΠΏΠ΅ΡΠ²ΡΠΌ Π² ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ (Ρ ΠΌΠΈΠ½ΡΡΠΎΠΌ Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ) Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (ΠΈΠ»ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°), Ρ.ΠΊ. ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°. Π ΡΠ΅Π»Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΡΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π΄Π°Π½Π½ΡΡ (ΠΈΠ»ΠΈ Π°Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΠΎΡΠ»Π°Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅) Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° self (Π°Π½Π°Π»ΠΎΠ³ this Π² Π‘++), Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° β ΡΠ΅ΡΠ΅Π· Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ super. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π½Π΅ΡΠ²Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ _cmd β ΡΠ΅Π»Π΅ΠΊΡΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠ· Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ². Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π‘++ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² Objective-C ΠΊΠ°ΠΊ-Π±ΡΠ΄ΡΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ virtual, ΠΈ Π²ΡΠ΅Π³Π΄Π° ΡΠ»Π΅Π΄ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΡ.
ΠΡΠ»ΠΈ Π² Π½Π°ΡΠ°Π»Π΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π·Π½Π°ΠΊ ΠΏΠ»ΡΡ (β+β), ΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ°, ΠΈ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½Π΅ΡΠ²Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ self (ΡΡΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ static-ΠΌΠ΅ΡΠΎΠ΄Π° Π² Π‘++). Π Π±Π΅Π· ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ° isa ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ self, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ super ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΎΠΆΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊ:
ΠΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π΅ΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (ΡΠΈΠΏ id) ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ (ΡΠΈΠΏ Class), ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π°:
ΠΠ΄Π΅ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° UILabel ΠΈΠ· ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° UIKit ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ° text ΡΠ°Π²Π½ΠΎΠ΅ ΡΡΡΠΎΠΊΠ΅ @βHello worldβ. ΠΡΠ° ΡΡΡΠΎΠΊΠ°, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π° ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠ΅ΠΉ ΡΡΡΠΎΠΊ @βHelloβ ΠΈ @β worldβ. ΠΠ΅ΡΠ²Π°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΏΠΎΡΡΠ»ΠΊΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ stringWithString ΠΊΠ»Π°ΡΡΡ NSString Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ-ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΎΠΉ @βHelloβ. Π’Π°ΠΊΠΎΠΉ Π²ΡΠ·ΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° NSString, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΡΠΎΠΊΠΎΠΉ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ. ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ stringByAppendingString Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ @β worldβ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΡΡΠ»ΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° NSString, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°-ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° ΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ setText: ΠΎΠ±ΡΠ΅ΠΊΡΠ° myLabel.
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°
ΠΠ±ΡΡΠ²ΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠ»Π°ΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π² ΡΠ°ΠΉΠ»Π΅ Complex.h:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, Π²ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° interface ΠΈ end. ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΡ (Π² ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ). ΠΠ½Π΅ ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠ΅ΡΠΎΠ΄ description ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ dealloc ΠΈ init, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΈ ΠΏΠΎΡΡΠ»ΠΊΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° Complex ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ description Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ Π΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ², ΠΊΡΠ΄Π°, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΏΠΎΠΏΠ°Π΄ΡΡ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΡ Π²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ. Π’ΠΎ Π΅ΡΡΡ init, description ΠΈ dealloc Π±ΡΠ΄ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, cΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ Π² Π΄Π²Π° ΡΡΠ°ΠΏΠ°: 1) Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ (ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ alloc) ΠΈ 2) ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² (ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΊΠ»Π°ΡΡΠ°).
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π»ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ:
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ (Π² ΠΎΠ΄ΠΈΠ½ ΡΡΠ°ΠΏ) ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ². Π’Π°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΈΡ ΠΈΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠΊΠΎΠΉ Ρ Π·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΠΌ Π½ΡΠ»Π΅ΠΌ, Π±Π΅Π· Π²ΡΠ·ΠΎΠ²ΠΎΠ² alloc ΠΈ init:
ΠΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ init ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π°. ΠΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡ id ΠΈ ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΡ Π²ΡΠ΅Π³Π΄Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΎ ΡΠ»ΠΎΠ²Π° init, Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ init. Π‘Ρ Π΅ΠΌΠ° Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ:
ΠΠΎΡ ΡΠΈΠΏΠΈΡΠ½ΡΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ (Π½Π΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° Ρ Π΄Π²ΡΠΌΡ ΡΠ»Π΅Π½Π°ΠΌΠΈ ΡΠΈΠΏΠ° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΌ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ:
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ release ΠΈ retain Π΄Π»Ρ NSObject ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ, ΠΈ Π΅Π΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ , Π² ΡΠΈΠ»Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΡΡΡΠ»ΠΎΠΊ:
Π’ΠΎ Π΅ΡΡΡ ΡΠ°ΠΌΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ dealloc, Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ, ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΡΠ΅ΡΡΠΈΠΊΠΈ ΡΠ²ΠΎΠΈΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠ΄Π΅Π»Π°Π» ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° dealloc Π΄Π»Ρ NSObject ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ ΠΏΠ°ΠΌΡΡΡ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ±ΡΡΠ½ΠΎ dealloc Π΄Π»Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΡΡΡΠΏΠ°
ΠΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠΎΠΌ ΡΡΡΠ»ΠΎΠΊ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π° ΠΏΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ. ΠΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌΠΈ Π²Π΅ΡΠ°ΠΌΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΡΡΡΠΏΠ°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠ΅ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠΈΠ½ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ°, ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½Ρ, Π° ΠΈΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΠΎ ΡΠ»ΠΎΠ²Π° set:
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½Ρ _re ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌΡ ΡΠΈΠΏΡ, Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½Ρ β ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° β ΡΠΎ ΠΏΡΠΎΡΡΡΠΌ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ, Π²Π΅Π΄Ρ Π½Π°Π΄ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΡΠ΅ΡΡΠΈΠΊΠΈ ΡΡΡΠ»ΠΎΠΊ. ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°:
ΠΠ°ΡΠΈΠ°Π½Ρ β3 Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ΄Π°ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π·Π°ΡΠΎΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°ΠΌΠΎΠ²ΡΠ³ΡΡΠΆΠ°Π΅ΠΌΡΠΉ ΠΏΡΠ», Π° ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ (ΡΠΌ. ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π·Π΄Π΅Π»).
ΠΠ΅ΡΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ° Π²ΡΠ΅Π³Π΄Π° ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡ:
Π‘Π°ΠΌΠΎΠ²ΡΠ³ΡΡΠΆΠ°Π΅ΠΌΡΠΉ ΠΏΡΠ» Π² Π½ΠΈΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π²Π½ΡΡΡΠΈ Π½Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ:
Π‘ΡΡΠΎΠΊΠ° ΡΠΎΡΠΌΠ°ΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΡ ΡΠ·ΡΠΊΠ° Π‘. ΠΠΎ Π΅ΡΠ»ΠΈ Π² Π½Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏ id, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΡΠΌΠ°ΡΠ° %@. ΠΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄, ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΡΡ Π²ΠΌΠ΅ΡΡΡ id? ΠΠ½ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΡ ΡΠΎ, ΡΡΠΎ Π²Π΅ΡΠ½Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ description Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° NSObject. NSString ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ» Π΅Π³ΠΎ Π½Π° Π²ΡΠ²ΠΎΠ΄ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ. ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² Π΅Π³ΠΎ, Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ²ΠΎΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ»Π°ΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Ρ Π΄Π²ΡΠΌΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ ΡΠΈΠΏΠ° double:
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° sayHelloToName:withSurname: ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΡΡΠ΅ΡΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΠΊΠΎΡΠ΅ΠΉ Π²ΡΠ΅Π³ΠΎ Π½Π΅ Π΄ΠΎΠ³Π°Π΄ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΡΠ»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ release. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π΄ΠΎΠ³Π°Π΄Π°Π΅ΡΡΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΈΠ½Π²Π°ΡΠΈΠ°Π½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Π·Π½Π°ΡΠΈΡ Π΅Π³ΠΎ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π²Π°ΡΠΎ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌΠΈ. Π₯ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ°ΠΌΠΎΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠΎΠ³Π΄Π° Π»ΠΈΠ±ΠΎ Π² Π±ΡΠ΄ΡΡΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π΄ΡΠΌΠ°Π» ΠΎΠ± ΠΈΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ. Π Π΅ΡΠ°Π΅ΡΡΡ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° NSAutoreleasePool β ΡΠ°ΠΌΠΎΠ²ΡΠ³ΡΡΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠ»Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π²ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ autorelease. ΠΡΠΈ ΡΡΠΎΠΌ Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ (ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ) ΡΠ°ΠΌΠΎΠ²ΡΠ³ΡΡΠΆΠ°Π΅ΠΌΡΠΉ ΠΏΡΠ». ΠΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΈΠΉ ΠΏΡΠ» ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ release, ΡΠΎ ΠΎΠ½ ΠΎΡΠΎΡΠ»Π΅Ρ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠ΅ΠΌ ΡΠ²ΠΎΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, ΡΠΌΠ΅Π½ΡΡΠ°Ρ ΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊ ΡΡΡΠ»ΠΎΠΊ (ΠΏΠΎ ΡΡΡΠΈ, ΡΠ½ΠΈΡΡΠΎΠΆΠ°Ρ). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ±ΡΠ΅ΠΊΡ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ Π² ΡΠ°ΠΌΠΎΠ²ΡΠ³ΡΡΠΆΠ°Π΅ΠΌΡΠΉ ΠΏΡΠ», ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΆΠΈΡΡ ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΏΠ°ΠΌΡΡΡ Π²ΠΎ Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ ΠΏΡΠ»Π°. ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΡΠΎΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠΈΠΊΠ»Ρ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π² ΡΠ°ΠΌΠΎΠ²ΡΠ³ΡΡΠΆΠ°Π΅ΠΌΡΠΉ ΠΏΡΠ», ΠΎΠ±ΡΠ°ΠΌΠ»ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ (Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ) ΠΏΡΠ»Π°ΠΌΠΈ.
ΠΡΠ±Π°Ρ Π½ΠΈΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΉ Cocoa, Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° NSAutoreleasePool Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ (ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²), ΠΈ Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ Π΅Π³ΠΎ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡ (ΠΏΠΎΡΠ»Π΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²). Π€ΡΠ½ΠΊΡΠΈΡ main(), ΡΠ²Π»ΡΡΡΠ°ΡΡΡ Π³Π»Π°Π²Π½ΠΎΠΉ Π½ΠΈΡΡΡ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Objective-C, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Cocoa Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ΅Π³Π΄Π° Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π²ΠΎΡ ΡΠ°ΠΊ:
Π ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ sayHelloToName:withSurname: ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π²ΠΎΡ ΡΠ°ΠΊ:
Π ΡΠ»ΠΎΠ²Ρ, ΠΌΠ΅ΡΠΎΠ΄ drain ΡΠ°ΠΌΠΎΠ²ΡΠ³ΡΡΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠ»Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ release Ρ ΡΠΎΠΉ Π»ΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΠ΅ΠΉ, ΡΡΠΎ, ΠΊΡΠΎΠΌΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅Π±Ρ ΡΠ°ΠΌΠΎΠΌΠ³ΠΎ ΠΈ Π²ΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π΅ΡΠ΅ Π΄Π°Π΅Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ ΡΠ±ΠΎΡΡΠΈΠΊΡ ΠΌΡΡΠΎΡΠ° Π²ΡΡΡΠΏΠΈΡΡ Π² ΠΈΠ³ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Mac OS 10.4 ΠΈ Π²ΡΡΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π° iOS ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° Π½Π΅Ρ.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΉΠ» Complex.m Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Complex:
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠ΅ΡΠΎΠ΄ complexWithRe:andIm: Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Complex, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ°ΠΌΠΎΠ²ΡΠ³ΡΡΠΆΠ°Π΅ΠΌΠΎΠΌ ΠΏΡΠ»Π΅. Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ description, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° NSString. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ Complex:
ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ
ΠΡΠ»ΠΈ ΠΊ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ (Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ) ΠΊΠ»Π°ΡΡΡ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ\ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±Π΅Π· Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ β ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π±Π΅Π· ΠΎΡΠΎΠ±ΡΡ ΡΡΠΈΠ»ΠΈΠΉ:
Π ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡ ΡΠ°ΠΊ:
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π½Π΅ΡΡΡ Π΄ΠΎΠ±ΡΡΡ ΡΠ»ΡΠΆΠ±Ρ ΠΊΠ°ΠΊ Π±Π΅Π·ΡΠΌΡΠ½Π½ΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ:
ΠΡΠΎΡΠΎΠΊΠΎΠ»Ρ
ΠΡΠΎΡΠΎΠΊΠΎΠ» Objective-C β ΡΡΠΎ ΡΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π³ΡΡΠΏΠΏΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅, ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ, ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΊΠ»Π°ΡΡ (Π°Π½Π°Π»ΠΎΠ³ ΠΊΠ»Π°ΡΡΠ° Π² Π‘++, Π³Π΄Π΅ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ virtual β¦ = 0). Π Π²Π΅ΡΡΠΈΠΈ ΡΠ·ΡΠΊΠ° 2.0 ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΌΠΈ (ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ @required, ΠΎΠ½ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΌΠ°Π»ΡΠΈΠ²Π°Π΅ΠΌΡΠΌ) ΠΈ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΡΠΌΠΈ (ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ @optional). ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ Π»ΠΈΠ±ΠΎ ΠΊΠ»Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΡΠΎ ΠΎΠ½ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΌ Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ». ΠΡΠΎΡΠΎΠΊΠΎΠ», ΠΈ ΠΊΠ»Π°ΡΡ, Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ, ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ Π²ΠΎΡ ΡΠ°ΠΊ:
OΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° MyPrinter ΠΌΠΎΠΆΠ½ΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΏΠΎΡΡΠ»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ print ΠΈ switchedOn, ΠΈ, ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° respondsToSelector:, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ loadPaper:, ΡΠ° ΠΊΠ°ΠΊ Π² Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ°, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊ:
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ Π² ΡΠ³Π»ΠΎΠ²ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°.
Π ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (id), ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ, ΠΏΠΈΡΡΡ ΡΠ°ΠΊ:
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΡΡΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ: Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΡΡΠ°ΡΡΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΎΠ± ΡΡΠΏΠ΅ΡΠ½ΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. Π‘ΡΡΡ ΠΎΠ±ΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠ΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°, Π½Π°Π΄Π΅Π΅ΡΡΡ, ΡΡΠΎ ΡΠ΅ΡΠΈΡΡ Π΅Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°Π²ΡΠΈΠΉ Π΅Π³ΠΎ ΠΊΠΎΠ΄, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΅ΠΌΡ, ΡΠΎΠΎΠ±ΡΠ°Ρ ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π΄ΡΠ΅ΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ. Objective-C ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ±Π° ΡΡΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ½ (Π΄Π°ΠΆΠ΅ ΡΠ²ΠΎΠΈΠΌ ΡΠΈΠΏΠΎΠΌ) Π½Π΅ΡΠ΅Ρ Π² ΡΠ΅Π±Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π΄ΡΠ΅ΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ. ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π² Cocoa ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ NSException, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π²ΡΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ NSString ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (ΡΠΈΠΏ id):
Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ, Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ°ΡΠΊΡΡΡΠΊΠΈ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° @throw. Π§ΡΠΎΠ±Ρ ΠΏΠ΅ΡΡ Π²Π°ΡΠΈΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠ°ΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π΅Π³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ Ρ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΠΌ try (ΡΠ°ΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ). Π Π·Π°ΡΠ΅ΠΌ, ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π±Π»ΠΎΠΊ Ρ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΠΌ catch(), Π³Π΄Π΅ Π² ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ»ΠΎΠΊΠΎΠ² catch() ΠΏΠΎΡΠ»Π΅ Π±Π»ΠΎΠΊΠ° try ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ. ΠΠΎΡΠ»Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΡΠ°ΡΠΊΡΡΡΠΈΠ²Π°Ρ ΡΡΠ΅ΠΊ, Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· Π±Π»ΠΎΠΊΠ° try ΠΈ, ΠΏΡΠΎΠ²Π΅ΡΡΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π²ΡΠ΅ Π±Π»ΠΎΠΊΠΈ catch(), ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΠΎΡ Π±Π»ΠΎΠΊ catch(), Π² ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΎΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠΈΠΏ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π΅ΡΠ²Π½ΠΎ (ΡΠΎΡΠ½ΠΎΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈΠ»ΠΈ id). ΠΡΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΈΠΏΡ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π»ΠΎ Π½ΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ catch(), ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ°ΡΠΊΡΡΡΠΊΡ ΡΡΠ΅ΠΊΠ°. ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ Π±Π»ΠΎΠΊΠ° Ρ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΠΌ try ΡΡΠΎΠΈΡ Π±Π»ΠΎΠΊ Ρ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΠΌ finally, ΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π΅ΠΌΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π»ΠΈ Π² Π±Π»ΠΎΠΊΠ΅ try ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ (ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π±Π»ΠΎΠΊ catch()), ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° Cup Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ fill ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅:
Π Π±Π»ΠΎΠΊΠ΅ finally ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡ ΡΠ΅ΡΡΡΡΡ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² Π±Π»ΠΎΠΊΠ΅ try, Π½ΠΎ Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½Π½ΡΠ΅ ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
Π‘Π²ΠΎΠΉΡΡΠ²Π°
ΠΠ»Ρ Π²Π΅ΡΡΠΈΠΈ Objective-C 2.0 Π½Π°Ρa ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° Complex ΡΠ²Π½ΠΎ ΠΈΠ·Π±ΡΡΠΎΡΠ½Π°: Π² Π½Π΅ΠΉ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ β ΡΠΏΠ»ΠΎΡΠ½Π°Ρ ΡΡΡΠΈΠ½Π°. ΠΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ Π΅Π³ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²: