<!doctypehtml><html lang=en><meta charset=utf-8><meta content=IE=edge http-equiv=X-UA-Compatible><meta content=width=device-width,initial-scale=1,viewport-fit=cover name=viewport><link href=/favicon.ico rel=icon><link color=#333333 href=/apple-logo.svg rel=mask-icon><title>
   Apple Developer Documentation
  </title><link href=/tutorials/css/documentation-topic.e976c620.css rel=prefetch><link href=/tutorials/css/documentation-topic~topic~tutorials-overview~welcome-experience-featured~welcome-experience-technologies.3c564496.css rel=prefetch><link href=/tutorials/css/documentation-topic~topic~welcome-experience-technologies.2784c3d6.css rel=prefetch><link href=/tutorials/css/global-head-footer.99482533.css rel=prefetch><link href=/tutorials/css/topic.9f552f60.css rel=prefetch><link href=/tutorials/css/topic~tutorials-overview.170c6e88.css rel=prefetch><link href=/tutorials/css/tutorials-overview.0e8e3cf2.css rel=prefetch><link href=/tutorials/css/welcome-experience-featured.ef7f1082.css rel=prefetch><link href=/tutorials/css/welcome-experience-technologies.c2d052e5.css rel=prefetch><link href=/tutorials/js/chunk-2d0d3105.cd72cc8e.js rel=prefetch><link href=/tutorials/js/chunk-2d217dfc.6b0d6c31.js rel=prefetch><link href=/tutorials/js/documentation-topic.7066a80e.js rel=prefetch><link href=/tutorials/js/documentation-topic~topic~tutorials-overview~welcome-experience-featured~welcome-experience-technologies.77513b77.js rel=prefetch><link href=/tutorials/js/documentation-topic~topic~welcome-experience-technologies.77f4ae13.js rel=prefetch><link href=/tutorials/js/global-head-footer.a88b4c5c.js rel=prefetch><link href=/tutorials/js/highlight-js-bash.85a55401.js rel=prefetch><link href=/tutorials/js/highlight-js-c.99b899e6.js rel=prefetch><link href=/tutorials/js/highlight-js-cpp.46268241.js rel=prefetch><link href=/tutorials/js/highlight-js-css.ba8500cc.js rel=prefetch><link href=/tutorials/js/highlight-js-custom-markdown.961a974b.js rel=prefetch><link href=/tutorials/js/highlight-js-custom-swift.1b483827.js rel=prefetch><link href=/tutorials/js/highlight-js-diff.672514df.js rel=prefetch><link href=/tutorials/js/highlight-js-http.ec39e120.js rel=prefetch><link href=/tutorials/js/highlight-js-java.a814d7f9.js rel=prefetch><link href=/tutorials/js/highlight-js-javascript.98c6aaa5.js rel=prefetch><link href=/tutorials/js/highlight-js-json.471128d2.js rel=prefetch><link href=/tutorials/js/highlight-js-llvm.ddaa176e.js rel=prefetch><link href=/tutorials/js/highlight-js-markdown.b7a9b614.js rel=prefetch><link href=/tutorials/js/highlight-js-objectivec.7b30f247.js rel=prefetch><link href=/tutorials/js/highlight-js-perl.b3c5d3f2.js rel=prefetch><link href=/tutorials/js/highlight-js-php.cc8d6c27.js rel=prefetch><link href=/tutorials/js/highlight-js-python.03e4c0eb.js rel=prefetch><link href=/tutorials/js/highlight-js-ruby.aa319643.js rel=prefetch><link href=/tutorials/js/highlight-js-scss.ba21e817.js rel=prefetch><link href=/tutorials/js/highlight-js-swift.0e0d0e76.js rel=prefetch><link href=/tutorials/js/highlight-js-xml.784eb41b.js rel=prefetch><link href=/tutorials/js/topic.ab481e3c.js rel=prefetch><link href=/tutorials/js/topic~tutorials-overview.4182c74b.js rel=prefetch><link href=/tutorials/js/tutorials-overview.5d3e57af.js rel=prefetch><link href=/tutorials/js/welcome-experience-featured.5ae9a3dc.js rel=prefetch><link href=/tutorials/js/welcome-experience-technologies.0ce48b30.js rel=prefetch><link as=style href=/tutorials/css/app.86fa6d6d.css rel=preload><link as=style href=/tutorials/css/chunk-vendors.7d63cb9f.css rel=preload><link as=script href=/tutorials/js/app.c8bed3d0.js rel=preload><link as=script href=/tutorials/js/chunk-vendors.3d9d5b73.js rel=preload><link href=/tutorials/css/chunk-vendors.7d63cb9f.css rel=stylesheet><link href=/tutorials/css/app.86fa6d6d.css rel=stylesheet><body data-color-scheme=auto><div id=_omniture_top><script>var s_account="awdappledeveloper"</script><script src=/tutorials/js/analytics.js></script></div><noscript><style>.noscript{font-family:"SF Pro Display","SF Pro Icons","Helvetica Neue",Helvetica,Arial,sans-serif;margin:92px auto 140px auto;text-align:center;width:980px}.noscript-title{color:#111;font-size:48px;font-weight:600;letter-spacing:-.003em;line-height:1.08365;margin:0 auto 54px auto;width:502px}@media only screen and (max-width:1068px){.noscript{margin:90px auto 120px auto;width:692px}.noscript-title{font-size:40px;letter-spacing:0;line-height:1.1;margin:0 auto 45px auto;width:420px}}@media only screen and (max-width:735px){.noscript{margin:45px auto 60px auto;width:87.5%}.noscript-title{font-size:32px;letter-spacing:.004em;line-height:1.125;margin:0 auto 35px auto;max-width:330px;width:auto}}#loading-placeholder{display:none}</style> <div class=noscript><h1 class=noscript-title>This page requires JavaScript.</h1><p>Please turn on JavaScript in your browser and refresh the page to view its content.</div></noscript><div id=app></div><script src=/tutorials/js/chunk-vendors.3d9d5b73.js></script><script src=/tutorials/js/app.c8bed3d0.js></script>