<f{"id":156,"date":"2013-02-03T23:48:37","date_gmt":"2013-02-03T22:48:37","guid":{"rendered":"http:\/\/www.bernhard-krenz.de\/?p=156"},"modified":"2013-02-03T23:52:24","modified_gmt":"2013-02-03T22:52:24","slug":"existiert-eine-konstante","status":"publish","type":"post","link":"https:\/\/www.bernhard-krenz.de\/?p=156","title":{"rendered":"Existiert eine Konstante?"},"content":{"rendered":"<p>Wer regelm\u00e4\u00dfig mit iOS arbeitet wird schnell einmal mit dem Problem konfrontiert, dass eine zu verwendende System-Konstante nur in einer neueren iOS-Version verf\u00fcgbar ist.<\/p>\n<p>Hier stellt sich die Frage, wie zu pr\u00fcfen ist, ob die Konstante in der iOS-Version des Nutzers \u00fcberhaupt zur Verf\u00fcgung steht, um durch eine geeignete Weiche Abst\u00fcrze zu vermeiden.<\/p>\n<p>Das Ganze zeige ich am Beispiel einer Observer-Konstante des MPMoviePlayerControllers zum Abspielen von Videos, welche einem die M\u00f6glichkeit bietet, ein Video erst dann einzublenden, wenn das erste Frame zur Verf\u00fcgung steht. Denn nur so kann man ein Flickern am Anfang des Videos vermeiden:<\/p>\n<pre class=\"brush: objc; title: ; notranslate\" title=\"\">\r\nif (&amp;MPMoviePlayerReadyForDisplayDidChangeNotification != NULL) \/\/ check if constant exists\r\n{\r\n\t\/\/ &gt;= iOS 6.0, use readyForDisplay property\r\n\t[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoIsVisibleChanged:) name:MPMoviePlayerReadyForDisplayDidChangeNotification object:nil];\r\n}\r\nelse\r\n{\r\n\t\/\/ &lt; iOS 6.0, use playbackState property\r\n\t[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoStateChanged:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil];\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Wer regelm\u00e4\u00dfig mit iOS arbeitet wird schnell einmal mit dem Problem konfrontiert, dass eine zu verwendende System-Konstante nur in einer<a href=\"https:\/\/www.bernhard-krenz.de\/?p=156\" class=\"searchmore\">Weiterlesen&hellip;<\/a><\/p>\n<div class=\"clr\"><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[8],"_links":{"self":[{"href":"https:\/\/www.bernhard-krenz.de\/index.php?rest_route=\/wp\/v2\/posts\/156"}],"collection":[{"href":"https:\/\/www.bernhard-krenz.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bernhard-krenz.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bernhard-krenz.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bernhard-krenz.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=156"}],"version-history":[{"count":5,"href":"https:\/\/www.bernhard-krenz.de\/index.php?rest_route=\/wp\/v2\/posts\/156\/revisions"}],"predecessor-version":[{"id":161,"href":"https:\/\/www.bernhard-krenz.de\/index.php?rest_route=\/wp\/v2\/posts\/156\/revisions\/161"}],"wp:attachment":[{"href":"https:\/\/www.bernhard-krenz.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bernhard-krenz.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bernhard-krenz.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}