{"id":12291,"date":"2022-09-30T08:20:18","date_gmt":"2022-09-30T02:50:18","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/"},"modified":"2022-09-30T08:20:18","modified_gmt":"2022-09-30T02:50:18","slug":"solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/","title":{"rendered":"[Solved] what is NSNotification Center ? why is it used ? (iPhone SDK) [duplicate]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-3778496\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"3778496\" data-parentid=\"3778386\" data-score=\"11\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>It is a tool to implement the observer pattern in a generic way. Your objects can say, <em>&#8220;I want to be notified if some other object posts a notification so I can do something.&#8221;<\/em> And another object can say, <em>&#8220;Something interesting happened, so I&#8217;m posting this notification to let others know.&#8221;<\/em>.<\/p>\n<p>In other APIs like Java, you explicitly register as observer to a manager object. The NSNotificationCenter makes this unnecessary (although you still can implement the pattern in exactly this way).<\/p>\n<p>The main idea is <em>decoupling<\/em>. This means that objects should know as few as possible about each other. NSNotificationCenter is a very valuable tool for that. Before I really knew how to use it, my classes had lots of delegates and sometimes even protocols and register methods so observers could register themselves. Hard to do right. NSNotificationCenter frees you of that burden.<\/p>\n<p>A concrete example: say you got an object that wants to know when the app is terminating. The app delegate has a method that gets called in this case, <code>applicationWillTerminate:<\/code>. You can now modify the delegate so that your object can register with the delegate, and implement the <code>applicationWillTerminate:<\/code> method so that the registered objects have a method called.<\/p>\n<p>Or you do this:<\/p>\n<pre><code>[[NSNotificationCenter defaultCenter] addObserver:self\n                                         selector:@selector(aMethodOnMyObject)\n                                             name:NSApplicationWillTerminateNotification\n                                           object:nil];\n<\/code><\/pre>\n<p>Then you don&#8217;t need to even touch your application delegate.<\/p>\n<p>Even cooler is using blocks with <code>addObserverForName:object:queue:usingBlock:<\/code>.<\/p>\n<p>Just to save you from crashes: if you do register your object as observer, be sure to call the <code>removeObserver:<\/code> method of NSNotificationCenter in your <code>dealloc<\/code> method.<\/p>\n<p>I suggest you also read the description in the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/developer.apple.com\/library\/ios\/#documentation\/cocoa\/reference\/Foundation\/Classes\/NSNotificationCenter_Class\/Reference\/Reference.html\">NSNotificationCenter class reference<\/a>, it also explains how to use it. Learn to use it, experiment with it, I bet you will find it saves a lot of code sometimes.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">0<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved what is NSNotification Center ? why is it used ? (iPhone SDK) [duplicate] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] It is a tool to implement the observer pattern in a generic way. Your objects can say, &#8220;I want to be notified if some other object posts a notification so I can do something.&#8221; And another object can say, &#8220;Something interesting happened, so I&#8217;m posting this notification to let others know.&#8221;. In other APIs &#8230; <a title=\"[Solved] what is NSNotification Center ? why is it used ? (iPhone SDK) [duplicate]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/\" aria-label=\"More on [Solved] what is NSNotification Center ? why is it used ? (iPhone SDK) [duplicate]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[469],"class_list":["post-12291","post","type-post","status-publish","format-standard","hentry","category-solved","tag-iphone"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] what is NSNotification Center ? why is it used ? (iPhone SDK) [duplicate] - JassWeb<\/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:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] what is NSNotification Center ? why is it used ? (iPhone SDK) [duplicate] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] It is a tool to implement the observer pattern in a generic way. Your objects can say, &#8220;I want to be notified if some other object posts a notification so I can do something.&#8221; And another object can say, &#8220;Something interesting happened, so I&#8217;m posting this notification to let others know.&#8221;. In other APIs ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-30T02:50:18+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] what is NSNotification Center ? why is it used ? (iPhone SDK) [duplicate]\",\"datePublished\":\"2022-09-30T02:50:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/\"},\"wordCount\":311,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"iphone\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/\",\"name\":\"[Solved] what is NSNotification Center ? why is it used ? (iPhone SDK) [duplicate] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-09-30T02:50:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] what is NSNotification Center ? why is it used ? (iPhone SDK) [duplicate]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] what is NSNotification Center ? why is it used ? (iPhone SDK) [duplicate] - JassWeb","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:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] what is NSNotification Center ? why is it used ? (iPhone SDK) [duplicate] - JassWeb","og_description":"[ad_1] It is a tool to implement the observer pattern in a generic way. Your objects can say, &#8220;I want to be notified if some other object posts a notification so I can do something.&#8221; And another object can say, &#8220;Something interesting happened, so I&#8217;m posting this notification to let others know.&#8221;. In other APIs ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/","og_site_name":"JassWeb","article_published_time":"2022-09-30T02:50:18+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] what is NSNotification Center ? why is it used ? (iPhone SDK) [duplicate]","datePublished":"2022-09-30T02:50:18+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/"},"wordCount":311,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["iphone"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/","url":"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/","name":"[Solved] what is NSNotification Center ? why is it used ? (iPhone SDK) [duplicate] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-09-30T02:50:18+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-what-is-nsnotification-center-why-is-it-used-iphone-sdk-duplicate\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] what is NSNotification Center ? why is it used ? (iPhone SDK) [duplicate]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/12291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=12291"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/12291\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=12291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=12291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=12291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}