рдорд┐рд▓рд┐рдП рд╕реНрд╡рд┐рдлреНрдЯ рд╕реЗ!

WWDC 2014 рд╕рдореНрдореЗрд▓рди рдореЗрдВ 2 рдЬреВрди рдХреЛ, Apple рдиреЗ рдПрдХ рдирдИ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ - рд╕реНрд╡рд┐рдлреНрдЯ рдкреЗрд╢ рдХреАред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рднрд╛рд╖рд╛ рдХреНрдпрд╛ рд╣реИ ( рд╕реНрд╡рд┐рдлреНрдЯ-рдЗрдиреЛрд╡реЗрд╢рди ), рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрдиреЛрд╡реЗрд╢рди рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдВрдЧрд╛ред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдУрдЬ-рд╕реА рд╕реЗ рдореБрдЦреНрдп рдЕрдВрддрд░ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╕реНрд╡рд┐рдлреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЬрд╛рдПред











рдЯреНрд░реЗрдирд┐рдВрдЧ



рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ Xcode 6 Beta рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдБ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

https://developer.apple.com/devcenter/ios/index.action

рдбрд╛рдЙрдирд▓реЛрдб, рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдЦреЛрд▓реЗрдВ (рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рдЕрд▓рдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдореБрдЦреНрдп Xcode рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред

рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ (рд╕рд┐рдВрдЧрд▓ рд╡реНрдпреВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди) -> рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рд╕реНрд╡рд┐рдлреНрдЯ рднрд╛рд╖рд╛ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ!







рд╕рдВрд░рдЪрдирд╛



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





рдпрд╣рд╛рдБ рдЕрдм AppDelegate рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:



import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool { // Override point for customization after application launch. return true } func applicationWillResignActive(application: UIApplication) { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } func applicationDidEnterBackground(application: UIApplication) { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. } func applicationWillEnterForeground(application: UIApplication) { // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. } func applicationDidBecomeActive(application: UIApplication) { // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } func applicationWillTerminate(application: UIApplication) { // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } }
      
      







рдирдорд╕реНрддреЗ рджреБрдирд┐рдпрд╛



рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдХреЛ рд╕реАрдЦрдирд╛ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЪрд▓рд┐рдП рдкрд░рдВрдкрд░рд╛ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рддреЗред AppDelegate.swift рдЦреЛрд▓реЗрдВ рдФрд░ func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool



рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool



рд▓рд╛рдЗрди:



 println("Hello World") //  
      
      





рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛рдПрдБ рдФрд░ рдЖрдк рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреЛрд╖рд┐рдд рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рджреЗрдЦреЗрдВрдЧреЗред рдЗрддрдирд╛ рд╕рд░рд▓ред



рдЗрд╕реЗ рдХрдард┐рди рдмрдирд╛рдУ



рдЖрдЗрдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рдХрд░реЗрдВред рдЕрдкрдирд╛ рдкрд╕рдВрджреАрджрд╛ TableView рдЬреЛрдбрд╝реЗрдВред

рдУрдкрди рдореЗрдирд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдбред рд╡реИрд╕реЗ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдЕрдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рджреЛ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдирд╣реАрдВ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдерд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХред рд╕рд┐рдореБрд▓реЗрдЯрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рднреА рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ:





рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХрд╝реАрдорддреА рддрд╛рд▓рд┐рдХрд╛ рджреГрд╢реНрдп рдвреВрдВрдврддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдХреНрд░реАрди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдлреИрд▓рд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рд╣реЛ (рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ)ред





рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдФрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдиреЗрдХреНрд╢рди рдирд┐рд░реАрдХреНрд╖рдХ рдХреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╕реЗ рдЦреЛрд▓реЗрдВ, рдЗрд╕реЗ ViewController рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдЦреАрдВрдЪреЗрдВ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдбреЗрдЯрд╛рд╕реЛрд░реНрд╕ рдХреЗ рд▓рд┐рдПред







ViewController.swift рдореЗрдВ, рд╣рдореЗрдВ рдЙрди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: UITableViewDataSource рдФрд░ UITableViewDelegate

рдЕрдм рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



 class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate
      
      





рд╕рдВрдХрд▓рдХ рддреБрд░рдВрдд рд╢рдкрде рд▓реЗрддрд╛ рд╣реИ:

рдЯрд╛рдЗрдк 'ViewController' рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИ 'UITableViewDataSource'

рд╕рдВрдХрд▓рдХ рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдлрд╝рдВрдХреНрд╢рди 'UITableViewDataSource'



рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдкрдХреЛ рдХрд┐рди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд░ рдХрдорд╛рдВрдб + рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред



 protocol UITableViewDataSource : NSObjectProtocol { func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!
      
      





рдЗрди рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рдорд╛рд░реЗ ViewController.swift рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рдкрд╣рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддрд╛рд▓рд┐рдХрд╛ (Int) рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рдкрд╕ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП:



 func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int { return 20 }
      
      





рдФрд░ рджреВрд╕рд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдмрд▓ рд╕реЗрд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИ:



 func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "MyTestSwiftCell") cell.text = "Habrapost \(indexPath.row)" cell.detailTextLabel.text = "Hi, \(indexPath.row)" return cell }
      
      





рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╣рдо рдПрдХ рд╕реЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВред рдЖрдЗрдП рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ:

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдПрдХ рдЪрд░ рдирд╣реАрдВред

рд╕реЗрд▓ рджреЗрдВ: UITableViewCell рдХреА рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдкреНрд░рдХрд╛рд░ UITableViewCell рд╣реЛрдЧрд╛ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рд╕реНрдерд┐рд░ рдпрд╛ рдЪрд░ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрдЧрд╛ред рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛:



 let cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "MyTestSwiftCell")
      
      





рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реИрд╕реЗ рднреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, Apple рдЗрд╕рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИ:



 let implicitInteger = 70 let implicitDouble = 70.0 let explicitDouble: Double = 70
      
      





рдореБрдЭреЗ рдпрд╛рдж рджрд┐рд▓рд╛рдПрдВ рдХрд┐ рд╣рдордиреЗ рдУрдмреНрдЬ-рд╕реА рдореЗрдВ рд╕реЗрд▓ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рд╣реИ:



 UITableCell *cell =[[UITableCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyTestSwiftCell"]
      
      





рдЖрдкрдХреЛ рдЕрдм рдЖрд╡рдВрдЯрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╕реНрд╡рд┐рдлреНрдЯ рдЕрдкрдиреЗ рдЖрдк рд╣реА рд╕рдм рдХреБрдЫ рдХрд░рддрд╛ рд╣реИред Init рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрдм рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрд╡рд┐рдлреНрдЯ рд╢реИрд▓реА (рдпрд╛рдиреА MyClass ()) рдореЗрдВ рдЬрдЧрд╣ рд▓реЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЗ рд╕рд╛рде initializers рднреА рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреЗ рдмрд╛рдж рд╕реНрд╡рд┐рдлреНрдЯ initializer рдореЗрдВ рдкрд╣рд▓рд╛ рддрд░реНрдХ рдерд╛ред



рдореБрдЭреЗ рдпрд╣ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд╕рдВрдж рдЖрдИ:



 cell.text = "Habrapost \(indexPath.row)"
      
      





рдУрдмреНрдЬ-рд╕реА рдореЗрдВ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрдШрдирди рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рд╣реЛрдЧрд╛:



 cell.text = [NSString stringWithFormat:@"Habrapost %@", indexPath.row];
      
      





рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдмрджрд▓рд╛рд╡ рд╣реИред

рдЕрдм рдХрд╣реЗрдВ рдХрд┐ рд╣рдо рдЯреЗрдХреНрд╕реНрдЯ рдХрд▓рд░ рдХреЛ рд╕реНрдЯреИрдВрдбрд░реНрдб рдкрд░реНрдкрд▓ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рдЖрдк рдЗрд╕реЗ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдпрд╣ рдУрдмреНрдЬ-рд╕реА рдореЗрдВ рдерд╛, рдЪрд▓реЛ рдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐ рдХреА рдУрд░ рдореБрдбрд╝реЗрдВ



 cell.detailTextLabel.textColor = UIColor.purpleColor()
      
      





рдирддреАрдЬрддрди, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ





рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛



рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рдПрдХ рдРрд╕рд╛ рдордВрдЪ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдореБрдЦреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

Playgroung рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП File-> New-> File рдЪреБрдиреЗрдВ:







рдмрд╕ рдЗрддрдирд╛ рд╣реА, рдЖрдк рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдмрд▓ рд╕реЗрд▓ рдЬреЛрдбрд╝рд╛ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред





рдпрд╣рд╛рдВ рдФрд░ рдкрдврд╝реЗрдВ https: //developer.apple.com / ...



рдирд┐рд╖реНрдХрд░реНрд╖



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



рд╕реНрд╡рд┐рдлреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВ: рд╕реНрд╡рд┐рдлреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛



All Articles