рдЬрдм рдореИрдВ
рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, JSON рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рд▓рд┐рдЦрддреЗ рд╕рдордп рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд╛рдлреА рд▓рдВрдмрд╛ рд╕рдордпред рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдореИрдВ рдЬрд╛рдирддрд╛ рдерд╛ рдХрд┐ рдПрдХ рджреВрд╕рд░рд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ -
AnyObject ред рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВ рдЗрди рджреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБред
Apple рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░:
- рдХреЛрдИ рднреА - рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
- AnyObject - рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд┐рд░:
- рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- AnyObject - рд╡рд░реНрдЧ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЖрдЗрдП рд╣рдо рдЗрди рджреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВред рдЪрд▓реЛ
рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рднреА рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдПрдВ, рдФрд░ рдЙрд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВред
let anyArray: [Any] = ["Macbook", 1, 2] print(anyArray) Console: ["Macbook", 1, 2]
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдИ рднреА рдЖрдкрдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЗрдВрдЯ)ред
рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрд╕ рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡ (
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░
рдЗрдВрдЯ ) рдРрд╕реА рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ,
AnyObject рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
AnyObject рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рд╕рдорд╛рди рд╕рд░рдгреА
рдмрдирд╛рдПрдВ ред
let anyObjectArray: [AnyObject] = ["Macbook", 1, 2]
рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛, рдХрдВрдкрд╛рдЗрд▓рд░ рд╣рдореЗрдВ "рд╕реНрдЯреНрд░рд┐рдВрдЧ / рдЗрдВрдЯ" рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдЕрд╕рдВрднрд╡рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ
рд╕рдВрдХрд▓рдХ рддреНрд░реБрдЯрд┐"Int" рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рди рдХреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рддрддреНрд╡ рдкреНрд░рдХрд╛рд░ "AnyObject" рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ
"Int" рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рди рдХреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рддрддреНрд╡ рдкреНрд░рдХрд╛рд░ "AnyObject" рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ
"String" рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рди рдХреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рддрддреНрд╡ рдкреНрд░рдХрд╛рд░ "AnyObject" рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ
рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рддреАрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ AnyObject рдкрд░ рд▓рд╛рдиреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
let anyObjectArray: [AnyObject] = ["Macbook" as AnyObject, 1 as AnyObject, 2 as AnyObject] print(anyObjectArray) Console: [Macbook, 1, 2]
рд╕рдВрдХрд▓рдХ рддреНрд░реБрдЯрд┐ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ
рдореИрдХрдмреБрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдХреА рддрд░рд╣ рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрдзрд░рдг рдирд╣реАрдВ рд╣реИред
рдЖрдЗрдП рдЙрдирдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рдгреА рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
for item in anyObjectArray { if item is String { print("\(item) String") } else if item is Int { print("\(item) Int") } } Console: Macbook String 1 Int 2 Int
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЯрд╛рдЗрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ рддрд╛рд░ рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╣реИрдВ, рди рдХрд┐ рдкреНрд░рдХрд╛рд░ рдХреА рдХрдХреНрд╖рд╛рдПрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ AnyObject рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдЗрдП рд╣рдорд╛рд░реЗ рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рдХреБрдЫ рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред рдЖрдЗрдП рдЙрдиреНрд╣реЗрдВ рдЙрджреНрджреЗрд╢реНрдп - C:
NSString рдФрд░
NSNumber рд╕реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
for item in anyObjectArray { if item is NSString { print("\(item) NSString") } else if item is NSNumber { print("\(item) NSNumber") } } Console: Macbook NSString 1 NSNumber 2 NSNumber
рддреЛ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ?
рдЙрджреНрджреЗрд╢реНрдп - рд╕реА рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рд╕рдВрдЧрддрддрд╛ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реНрд╡рд┐рдлреНрдЯ рдХреЛрдХреЛ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдХреБрд╢рд▓ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рд╕реНрд╡рд┐рдлреНрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡ - C рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕реНрд╡рд┐рдлреНрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдФрд░ рдХреБрдЫ рд╕реНрд╡рд┐рдлреНрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ Objective - C рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдмрджрд▓ рджреЗрдЧрд╛ред рдкреНрд░рдХрд╛рд░ рдЬрд┐рдиреНрд╣реЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡ - рд╕реА рдФрд░ рд╕реНрд╡рд┐рдлреНрдЯ рдХреЗ рдмреАрдЪ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ
рд╕рдорд╡рд░реНрддреА рдХрд╣рд╛
рдЬрд╛рддрд╛ рд╣реИ ред
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╕рдВрдХрд▓рдХ "рдкреБрд▓реЛрдВ" рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдФрд░ рдмрдирд╛рдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд▓рдЪреАрд▓рд╛ рд╣реЛрдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реИрд╢ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред
AnyObject рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░реЗрдВ?
рдЬреИрд╕рд╛ рдХрд┐ Apple рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, AnyObject рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ
рдХрдХреНрд╖рд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдЯ рдХреНрд▓рд╛рд╕ рдирд╣реАрдВ рд╣реИред
рд╕реНрд╡рд┐рдлреНрдЯ 3 рдореЗрдВ, Objective - C рдореЗрдВ рдЖрдИрдбреА рдкреНрд░рдХрд╛рд░ рдЕрдм рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рд╡рд░реНрдЧ, рдЧрдгрдирд╛, рд╕рдВрд░рдЪрдирд╛ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрд╡рд┐рдлреНрдЯ рдкреНрд░рдХрд╛рд░ рд╣реЛред рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдЙрджреНрджреЗрд╢реНрдп - рд╕реА рдПрдкреАрдЖрдИ рдХреЛ рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрд╡рд┐рдлреНрдЯ-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЙрджреНрджреЗрд╢реНрдп - рд╕реА рдПрдкреАрдЖрдИ рдФрд░ рд╕реНрд╡рд┐рдлреНрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдореИрдиреБрдЕрд▓ "рдмреНрд▓реЙрдХ" рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рдЖрдк рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ
AnyObject рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ , рддрд╛рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдФрд░
рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ ред
Apple рдХрд╣рддреЗ рд╣реИрдВ :
рдХрд┐рд╕реА рднреА рдФрд░
AnyObject рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрдм рдХрд░реЗрдВ рдЬрдм рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдЯреАрдХ рд╣реЛрдирд╛ рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИред