{"id":18427,"date":"2024-03-15T16:54:03","date_gmt":"2024-03-15T16:54:03","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/"},"modified":"2024-03-21T13:16:52","modified_gmt":"2024-03-21T13:16:52","slug":"what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/","title":{"rendered":"What are the differences between initWithFrame, initWithCoder, and awakeFromNib in iOS?"},"content":{"rendered":"<p>In iOS, initWithFrame, initWithCoder, and awakeFromNib are methods used to initialize views or objects. Their differences are as follows:<\/p>\n<ol>\n<li>initWithFrame is the initialization method for UIView subclasses, used to create a view object programmatically. It takes a CGRect parameter to specify the initial size and position of the view. Custom initialization operations can be implemented by overriding this method.<\/li>\n<li>The initWithCoder method is defined in the NSCoding protocol and is used to create objects through archiving and unarchiving. When creating views using Interface Builder, the view&#8217;s properties and state are archived into a nib file and then recreated using unarchiving. The initWithCoder method is called during the unarchiving process and can be overridden to perform custom initialization operations.<\/li>\n<li>awakeFromNib: This is a method defined in UIView that is used to perform initialization operations after the view has been unarchived from a nib file. Once the view is loaded from the nib file, the awakeFromNib method is automatically called. This method can be overridden to customize initialization operations, such as setting default property values or adding gestures.<\/li>\n<\/ol>\n<p>In summary, initWithFrame is suitable for creating views through code, initWithFrame is suitable for creating views through unarchiving, and awakeFromNib is suitable for initializing views loaded from a nib file.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In iOS, initWithFrame, initWithCoder, and awakeFromNib are methods used to initialize views or objects. Their differences are as follows: initWithFrame is the initialization method for UIView subclasses, used to create a view object programmatically. It takes a CGRect parameter to specify the initial size and position of the view. Custom initialization operations can be implemented [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-18427","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What are the differences between initWithFrame, initWithCoder, and awakeFromNib in iOS? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What are the differences between initWithFrame, initWithCoder, and awakeFromNib in iOS?\" \/>\n<meta property=\"og:description\" content=\"In iOS, initWithFrame, initWithCoder, and awakeFromNib are methods used to initialize views or objects. Their differences are as follows: initWithFrame is the initialization method for UIView subclasses, used to create a view object programmatically. It takes a CGRect parameter to specify the initial size and position of the view. Custom initialization operations can be implemented [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T16:54:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T13:16:52+00:00\" \/>\n<meta name=\"author\" content=\"Emily Johnson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Emily Johnson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/\"},\"author\":{\"name\":\"Emily Johnson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378\"},\"headline\":\"What are the differences between initWithFrame, initWithCoder, and awakeFromNib in iOS?\",\"datePublished\":\"2024-03-15T16:54:03+00:00\",\"dateModified\":\"2024-03-21T13:16:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/\"},\"wordCount\":218,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/\",\"name\":\"What are the differences between initWithFrame, initWithCoder, and awakeFromNib in iOS? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T16:54:03+00:00\",\"dateModified\":\"2024-03-21T13:16:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What are the differences between initWithFrame, initWithCoder, and awakeFromNib in iOS?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378\",\"name\":\"Emily Johnson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g\",\"caption\":\"Emily Johnson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/emilyjohnson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What are the differences between initWithFrame, initWithCoder, and awakeFromNib in iOS? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/","og_locale":"en_US","og_type":"article","og_title":"What are the differences between initWithFrame, initWithCoder, and awakeFromNib in iOS?","og_description":"In iOS, initWithFrame, initWithCoder, and awakeFromNib are methods used to initialize views or objects. Their differences are as follows: initWithFrame is the initialization method for UIView subclasses, used to create a view object programmatically. It takes a CGRect parameter to specify the initial size and position of the view. Custom initialization operations can be implemented [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T16:54:03+00:00","article_modified_time":"2024-03-21T13:16:52+00:00","author":"Emily Johnson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Emily Johnson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/"},"author":{"name":"Emily Johnson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378"},"headline":"What are the differences between initWithFrame, initWithCoder, and awakeFromNib in iOS?","datePublished":"2024-03-15T16:54:03+00:00","dateModified":"2024-03-21T13:16:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/"},"wordCount":218,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/","url":"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/","name":"What are the differences between initWithFrame, initWithCoder, and awakeFromNib in iOS? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T16:54:03+00:00","dateModified":"2024-03-21T13:16:52+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-differences-between-initwithframe-initwithcoder-and-awakefromnib-in-ios\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What are the differences between initWithFrame, initWithCoder, and awakeFromNib in iOS?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378","name":"Emily Johnson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g","caption":"Emily Johnson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/emilyjohnson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18427","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=18427"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18427\/revisions"}],"predecessor-version":[{"id":52105,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18427\/revisions\/52105"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=18427"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=18427"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=18427"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}