ุฃูŠ ูˆ AnyObject ููŠ ุณูˆูŠูุช. ู…ุง ู‡ูˆ ุงู„ูุฑู‚ ุจูŠู†ู‡ู…ุงุŸ

ูˆู‚ุช ุทูˆูŠู„ ููŠ ู…ุดุงุฑูŠุนูŠ ุนู†ุฏ ุงู„ูƒุชุงุจุฉ ุนู†ุฏ ุงุณุชุฎุฏุงู…ูƒ ู„ุฃูŠ ู†ูˆุน ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุนู†ุฏ ู…ุนุงู„ุฌุฉ ุจูŠุงู†ุงุช JSON. ู„ูƒู†ูŠ ุฃูŠุถู‹ุง ุนุฑูุช ุฃู† ู‡ู†ุงูƒ ู†ูˆุนู‹ุง ุซุงู†ูŠู‹ุง - AnyObject . ูˆู…ุคุฎุฑุงู‹ ุŒ ูƒู†ุช ุฃููƒุฑ ููŠ ุงู„ูุฑู‚ ุจูŠู† ู‡ุฐูŠู† ุงู„ู†ูˆุนูŠู†.

ูˆูู‚ู‹ุง ู„ูˆุซุงุฆู‚ Apple:

  • ุฃูŠ - ูŠู…ูƒู† ุฃู† ูŠู…ุซู„ ู…ุซูŠู„ ู…ู† ุฃูŠ ู†ูˆุน
  • AnyObject - ูŠู…ูƒู† ุฃู† ุชู…ุซู„ ู…ุซูŠู„ู‹ุง ู„ุฃูŠ ูุฆุฉ

ู„ูˆุถุนู‡ุง ุฃุณู‡ู„ ู‚ู„ูŠู„ุงู‹ ุŒ ุซู…:

  • ุฃูŠ ูŠุณุชุฎุฏู… ู„ุฌู…ูŠุน ุฃู†ูˆุงุน.
  • AnyObject - ูŠุณุชุฎุฏู… ู„ุฃู†ูˆุงุน ุงู„ูุตู„

ุฏุนูˆู†ุง ุงู„ุชุญู‚ู‚ ููŠ ุงู„ู…ู…ุงุฑุณุฉ ู‡ุฐูŠู† ุงู„ู†ูˆุนูŠู†. ู„ู†ุจุฏุฃ ู…ุน ู†ูˆุน ุฃูŠ .

ู„ู„ู‚ูŠุงู… ุจุฐู„ูƒ ุŒ ู‚ู… ุจุฅู†ุดุงุก ุตููŠู ู…ู† ุงู„ู†ูˆุน "ุฃูŠ" ุŒ ุซู… ู‚ู… ุจุทุจุงุนุชู‡.

let anyArray: [Any] = ["Macbook", 1, 2] print(anyArray) Console: ["Macbook", 1, 2] 

ูƒู…ุง ู†ุฑู‰ ุŒ ูุฅู† Any ูŠุณู…ุญ ู„ูƒ ุจุงู„ุนู…ู„ ู…ุน ุฃู†ูˆุงุน ู…ุฎุชู„ูุฉ ู…ู† ุงู„ุจูŠุงู†ุงุช ููŠ ู†ูุณ ุงู„ูˆู‚ุช (StringุŒ Int).
ูˆูู‚ู‹ุง ู„ู„ูˆุซุงุฆู‚ ุŒ ูุฅู† ุงู„ุนู†ุงุตุฑ ( String ูˆ Int ) ููŠ ู‡ุฐุง ุงู„ุตููŠู ุนุจุงุฑุฉ ุนู† ุจู†ูŠุงุช ู‡ูŠ ุฃู†ูˆุงุน ู‚ูŠู… ุŒ ูˆุจุงู„ุชุงู„ูŠ ุŒ ู…ู† ุงู„ู†ุงุญูŠุฉ ุงู„ู†ุธุฑูŠุฉ ุŒ ูŠุฌุจ ุฃู„ุง ุชุนู…ู„ AnyObject .

ู„ู„ุชุญู‚ู‚ ู…ู† ุฐู„ูƒ ุŒ ู‚ู… ุจุฅู†ุดุงุก ุตููŠู ู…ุชุทุงุจู‚ ู…ู† ุงู„ู†ูˆุน AnyObject .

 let anyObjectArray: [AnyObject] = ["Macbook", 1, 2] 

ูƒู…ุง ู‡ูˆ ู…ุชูˆู‚ุน ุŒ ูุฅู† ุงู„ู…ุชุฑุฌู… ูŠุนุทูŠู†ุง ุฎุทุฃ ุญูˆู„ ุงุณุชุญุงู„ุฉ ุชุญูˆูŠู„ ุงู„ู†ูˆุน "String / Int" ุฅู„ู‰ ุงู„ู†ูˆุน AnyObject

ุฎุทุฃ ู…ุชุฑุฌู…
ู„ุง ูŠู…ูƒู† ุชุญูˆูŠู„ ู‚ูŠู…ุฉ ุงู„ู†ูˆุน "Int" ุฅู„ู‰ ู†ูˆุน ุงู„ุนู†ุตุฑ ุงู„ู…ุชูˆู‚ุน "AnyObject"
ู„ุง ูŠู…ูƒู† ุชุญูˆูŠู„ ู‚ูŠู…ุฉ ุงู„ู†ูˆุน "Int" ุฅู„ู‰ ู†ูˆุน ุงู„ุนู†ุตุฑ ุงู„ู…ุชูˆู‚ุน "AnyObject"
ู„ุง ูŠู…ูƒู† ุชุญูˆูŠู„ ู‚ูŠู…ุฉ ุงู„ู†ูˆุน "ุณู„ุณู„ุฉ" ุฅู„ู‰ ู†ูˆุน ุงู„ุนู†ุตุฑ ุงู„ู…ุชูˆู‚ุน "AnyObject"

ูˆู„ูƒู† ุฏุนูˆู†ุง ู†ุญุงูˆู„ ุฅุญุถุงุฑ ุฃู†ูˆุงุนู†ุง ุงู„ุซู„ุงุซุฉ ุฅู„ู‰ AnyObject ูˆุทุจุงุนุฉ ุงู„ู†ุชูŠุฌุฉ.

 let anyObjectArray: [AnyObject] = ["Macbook" as AnyObject, 1 as AnyObject, 2 as AnyObject] print(anyObjectArray) Console: [Macbook, 1, 2] 

ู„ู‚ุฏ ุงุฎุชูู‰ ุฎุทุฃ ุจุฑู†ุงู…ุฌ ุงู„ุชุญูˆูŠู„ ุงู„ุจุฑู…ุฌูŠ. ูƒู…ุง ู†ุฑู‰ ุŒ ุชุจุฏูˆ ุณู„ุณู„ุฉ Macbook ุจูˆุถูˆุญ ูƒุณู„ุณู„ุฉ ุŒ ู„ูƒู† ู„ูŠุณ ู„ุฏูŠู‡ุง ุนู„ุงู…ุงุช ุงู‚ุชุจุงุณ ู…ุนุชุงุฏุฉ ู…ุซู„ ู†ูˆุน ุงู„ุณู„ุณู„ุฉ ููŠ Swift.

ุฏุนูˆู†ุง ู†ุญุงูˆู„ ุทุจุงุนุฉ ุงู„ู…ุตููˆูุฉ ุจุงุณุชุฎุฏุงู… ุญู„ู‚ุฉ ู„ู„ุชุญู‚ู‚ ู…ู† ู†ูˆุนู‡ุง ุงู„ูุนู„ูŠ.

 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 

ุณู„ุณู„ุฉ ู…ู† ู†ูˆุน ุณู„ุณู„ุฉ. ูƒู…ุง ู‚ูŠู„ ู…ู† ู‚ุจู„ ุŒ ุงู„ุณู„ุงุณู„ ููŠ Swift ุนุจุงุฑุฉ ุนู† ู‡ูŠุงูƒู„ ุŒ ูˆู„ูŠุณุช ุฃู†ูˆุงุนู‹ุง ู…ู† ุงู„ูุฆุงุช. ู„ุฐู„ูƒ ุŒ ูŠุฌุจ ุฃู„ุง ู†ูƒูˆู† ู‚ุงุฏุฑูŠู† ุนู„ู‰ ุงุณุชุฎุฏุงู…ู‡ุง ูƒู€ AnyObject.

ุฏุนูˆู†ุง ุฅุฌุฑุงุก ุงู„ู…ุฒูŠุฏ ู…ู† ุงู„ุชุฌุงุฑุจ ู…ุน ู…ุฌู…ูˆุนุฉ ู„ุฏูŠู†ุง. ุฏุนู†ุง ู†ุญุงูˆู„ ุงู„ุชุญู‚ู‚ ู…ู†ู‡ุง ุจุญุซู‹ุง ุนู† ุฃู†ูˆุงุน ู…ู† Objective - 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 

ูู„ู…ุงุฐุง ูŠุญุฏุซ ู‡ุฐุงุŸ


ูƒุฌุฒุก ู…ู† ุชูˆุงูู‚ู‡ ู…ุน Objective - C ุŒ ูŠูˆูุฑ Swift ุทุฑู‚ู‹ุง ู…ุฑูŠุญุฉ ูˆูุนุงู„ุฉ ู„ู„ุนู…ู„ ู…ุน ู…ู†ุตุงุช Cocoa.

ูŠู‚ูˆู… Swift ุชู„ู‚ุงุฆูŠู‹ุง ุจุชุญูˆูŠู„ ุจุนุถ ุฃู†ูˆุงุน Object-C ุฅู„ู‰ ุฃู†ูˆุงุน Swift ุŒ ูˆุจุนุถ ุฃู†ูˆุงุน Swift ุฅู„ู‰ ุฃู†ูˆุงุน Objective - C. ุชุณู…ู‰ ุงู„ุฃู†ูˆุงุน ุงู„ุชูŠ ูŠู…ูƒู† ุชุญูˆูŠู„ู‡ุง ุจูŠู† Objective - C ูˆ Swift ู…ุชุณู„ุณู„ุฉ .

ูˆุจุนุจุงุฑุฉ ุฃุฎุฑู‰ ุŒ ูุฅู† ุงู„ู…ุชุฑุฌู… ูŠุจุฐู„ ู‚ุตุงุฑู‰ ุฌู‡ุฏู‡ ู„ูŠูƒูˆู† ู…ุฑู†ู‹ุง ููŠ ุงู„ุชุนุงู…ู„ ู…ุน ู‡ุฐู‡ ุงู„ุฃู†ูˆุงุน ู…ู† ุฎู„ุงู„ ุงู„ุชุญูˆูŠู„ ุงู„ุชู„ู‚ุงุฆูŠ ูˆุฅู†ุดุงุก "ุฌุณูˆุฑ" ุŒ ูˆููŠ ุงู„ูˆู‚ุช ู†ูุณู‡ ู…ู†ุน ุชุนุทู„ ุงู„ุชุทุจูŠู‚.

ู…ุชู‰ ุชุณุชุฎุฏู… AnyObjectุŸ


ูƒู…ุง ู‡ูˆ ู…ุฐูƒูˆุฑ ููŠ ูˆุซุงุฆู‚ Apple ุŒ ูŠู…ูƒู† ุงุณุชุฎุฏุงู… AnyObject ู„ู„ุนู…ู„ ู…ุน ุงู„ูƒุงุฆู†ุงุช ุงู„ู…ุดุชู‚ุฉ ู…ู† Class ูˆู„ูƒู† ู„ูŠุณ ู„ุฏูŠู‡ุง ูุฆุฉ ุฌุฐุฑ ุดุงุฆุนุฉ.

ููŠ Swift 3 ุŒ ูŠุชู… ุงู„ุขู† ุชุนูŠูŠู† ู†ูˆุน ุงู„ู…ุนุฑู ููŠ Objective - C ุฅู„ู‰ ุฃูŠ ู†ูˆุน ููŠ Swift ุŒ ุงู„ุฐูŠ ูŠุตู ู‚ูŠู…ุฉ ุฃูŠ ู†ูˆุน ุŒ ุณูˆุงุก ูƒุงู† ูุฆุฉ ุฃูˆ ุชุนุฏุงุฏ ุฃูˆ ุจู†ูŠุฉ ุฃูˆ ุฃูŠ ู†ูˆุน ุขุฎุฑ ู…ู† Swift. ู‡ุฐุง ุงู„ุชุบูŠูŠุฑ ูŠุฌุนู„ ูˆุงุฌู‡ุงุช ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช Objective - C ุฃูƒุซุฑ ู…ุฑูˆู†ุฉ ููŠ Swift ุŒ ู„ุฃู†ู‡ ูŠู…ูƒู† ุชู…ุฑูŠุฑ ุฃู†ูˆุงุน ุงู„ู‚ูŠู… ุงู„ู…ุนุฑูุฉ ู…ู† Swift ุฅู„ู‰ Objective - C ูˆุงุฌู‡ุงุช ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช ูˆุงุณุชุฑุฌุงุนู‡ุง ูƒู†ูˆุน ู…ู† ุฃู†ูˆุงุน Swift ุŒ ู…ู…ุง ูŠู„ุบูŠ ุงู„ุญุงุฌุฉ ู„ุฃู†ูˆุงุน "ุงู„ุญุธุฑ" ุงู„ูŠุฏูˆูŠุฉ.

ูˆุจุงู„ุชุงู„ูŠ ุŒ ูŠูู†ุตุญ ุจุงุณุชุฎุฏุงู… AnyObject ุนู†ุฏู…ุง ุชุฑูŠุฏ ุชู‚ูŠูŠุฏ ุงู„ุจุฑูˆุชูˆูƒูˆู„ ุจุญูŠุซ ูŠู…ูƒู† ุงุณุชุฎุฏุงู…ู‡ ูู‚ุท ู…ุน ุงู„ูุฆุงุช ุŒ ูˆุฃูŠ ููŠ ุงู„ุญุงู„ุงุช ุงู„ุฃุฎุฑู‰ .

ูŠุถูŠู Apple :
ุงุณุชุฎุฏู… Any ูˆ AnyObject ูู‚ุท ุนู†ุฏู…ุง ุชุญุชุงุฌ ุตุฑุงุญุฉ ุฅู„ู‰ ุงู„ุณู„ูˆูƒ ูˆุงู„ู‚ุฏุฑุงุช ุงู„ุชูŠ ุชูˆูุฑู‡ุง. ู…ู† ุงู„ุฃูุถู„ ุฏุงุฆู…ู‹ุง ุฃู† ุชูƒูˆู† ุฏู‚ูŠู‚ู‹ุง ุจุดุฃู† ุงู„ุฃู†ูˆุงุน ุงู„ุชูŠ ุชุชูˆู‚ุน ุงุณุชุฎุฏุงู…ู‡ุง ููŠ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ุฎุงุตุฉ ุจูƒ.

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


All Articles