{"id":6095,"date":"2014-11-10T18:10:17","date_gmt":"2014-11-10T17:10:17","guid":{"rendered":"http:\/\/www.iprog.it\/blog\/?p=6095"},"modified":"2014-11-26T18:08:28","modified_gmt":"2014-11-26T17:08:28","slug":"collezione-macro-per-ios","status":"publish","type":"post","link":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/","title":{"rendered":"Collezione di Macro per iOS"},"content":{"rendered":"<p>Di seguito elenco alcune macro utili durante lo sviluppo di applicazioni in Objective-C per iOS.<\/p>\n<p><a href=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2014\/11\/MB__note.png\" rel=\"lightbox[6095]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6100\" src=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2014\/11\/MB__note.png\" alt=\"macro note\" width=\"256\" height=\"256\" srcset=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2014\/11\/MB__note.png 256w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2014\/11\/MB__note-70x70.png 70w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>[code lang=&#8221;obj-c&#8221;]\/\/ Gradi a Radianti<br \/>\n #define degreesToRadians(x) (M_PI * x \/ 180.0)[\/code]<\/p>\n<p>[code lang=&#8221;obj-c&#8221;]\/\/ Invalidazione Timer<br \/>\n #define UA_invalidateTimer(t) [t invalidate]; t = nil;[\/code]<\/p>\n<p>[code lang=&#8221;obj-c&#8221;]<br \/>\n\/\/ Info Dispositivo<br \/>\n #define UA_isIPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)<br \/>\n #define UA_isIPhone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)<br \/>\n #define UA_isRetinaDevice ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] &amp;&amp; [[UIScreen mainScreen] scale] &gt;= 2)<br \/>\n #define UA_isMultiTaskingSupported ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)] &amp;&amp; [[UIDevice currentDevice] isMultitaskingSupported])[\/code]<\/p>\n<p>[code lang=&#8221;obj-c&#8221;]<br \/>\n\/\/ Threading<br \/>\n #define UA_runOnMainThread if (![NSThread isMainThread]) { dispatch_sync(dispatch_get_main_queue(), ^{ [self performSelector:_cmd]; }); return; };<\/p>\n<p>[\/code]<\/p>\n<p>[code lang=&#8221;obj-c&#8221;]\/\/ Colori<br \/>\n #define UA_rgba(r,g,b,a) [UIColor colorWithRed:r\/255.0f green:g\/255.0f blue:b\/255.0f alpha:a]<br \/>\n #define UA_rgb(r,g,b) UA_rgba(r, g, b, 1.0f)[\/code]<\/p>\n<p>[code lang=&#8221;obj-c&#8221;]<br \/>\n\/\/ Debugging \/ Logging<br \/>\n#ifdef DEBUG&lt;<br \/>\n#define UA_log( s, &#8230; ) NSLog( @&quot;&lt;%@:%d&gt; %@&quot;, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )<br \/>\n#else<br \/>\n#define UA_log( s, &#8230; )<br \/>\n#endif<br \/>\n#define UA_logBounds(view) UA_log(@&quot;%@ bounds: %@&quot;, view, NSStringFromRect([view bounds]))<br \/>\n#define UA_logFrame(view) UA_log(@&quot;%@ frame: %@&quot;, view, NSStringFromRect([view frame]))[\/code]<\/p>\n<p>[code lang=&#8221;obj-c&#8221;]\/\/ Altro<br \/>\n#define NSStringFromBool(b) (b ? @&quot;YES&quot; : @&quot;NO&quot;)<br \/>\n#define UA_SHOW_VIEW_BORDERS YES<br \/>\n#define UA_showDebugBorderForViewColor(view, color) if (UA_SHOW_VIEW_BORDERS) { view.layer.borderColor = color.CGColor; view.layer.borderWidth = 1.0; }<br \/>\n#define UA_showDebugBorderForView(view) UA_showDebugBorderForViewColor(view, [UIColor colorWithWhite:0.0 alpha:0.25])[\/code]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Di seguito elenco alcune macro utili durante lo sviluppo di applicazioni in Objective-C per iOS. &nbsp; [code lang=&#8221;obj-c&#8221;]\/\/ Gradi a Radianti #define degreesToRadians(x) (M_PI * x \/ 180.0)[\/code] [code lang=&#8221;obj-c&#8221;]\/\/ Invalidazione Timer #define UA_invalidateTimer(t) [t invalidate]; t = nil;[\/code] [code lang=&#8221;obj-c&#8221;] \/\/ Info Dispositivo #define UA_isIPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) #define&#8230; <a href=\"https:\/\/www.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":5,"featured_media":6100,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,920],"tags":[2236,2327,492],"class_list":["post-6095","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-objective-c-ios","category-xcode-tiptricks","tag-swift-xcode6-dev-iphone-ipad-mac-ios-apple-software","tag-autola","tag-http-www-youtube"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Collezione di Macro per iOS - iProg<\/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.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Collezione di Macro per iOS - iProg\" \/>\n<meta name=\"twitter:description\" content=\"Di seguito elenco alcune macro utili durante lo sviluppo di applicazioni in Objective-C per iOS. &nbsp; [code lang=&#8221;obj-c&#8221;]\/\/ Gradi a Radianti #define degreesToRadians(x) (M_PI * x \/ 180.0)[\/code] [code lang=&#8221;obj-c&#8221;]\/\/ Invalidazione Timer #define UA_invalidateTimer(t) [t invalidate]; t = nil;[\/code] [code lang=&#8221;obj-c&#8221;] \/\/ Info Dispositivo #define UA_isIPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) #define... Read more &raquo;\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2014\/11\/MB__note.png\" \/>\n<meta name=\"twitter:creator\" content=\"@iprogblog\" \/>\n<meta name=\"twitter:site\" content=\"@iprogblog\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fabio\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/collezione-macro-per-ios\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/collezione-macro-per-ios\\\/\"},\"author\":{\"name\":\"Fabio\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\"},\"headline\":\"Collezione di Macro per iOS\",\"datePublished\":\"2014-11-10T17:10:17+00:00\",\"dateModified\":\"2014-11-26T17:08:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/collezione-macro-per-ios\\\/\"},\"wordCount\":265,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/collezione-macro-per-ios\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/11\\\/MB__note.png\",\"keywords\":[\"#Swift #Xcode6 #dev #iPhone #iPad #Mac #iOS #Apple #Software\",\"autola\",\"http www youtube\"],\"articleSection\":[\"Objective-C iOS\",\"Xcode Tip&amp;Tricks\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/collezione-macro-per-ios\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/collezione-macro-per-ios\\\/\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/collezione-macro-per-ios\\\/\",\"name\":\"Collezione di Macro per iOS - iProg\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/collezione-macro-per-ios\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/collezione-macro-per-ios\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/11\\\/MB__note.png\",\"datePublished\":\"2014-11-10T17:10:17+00:00\",\"dateModified\":\"2014-11-26T17:08:28+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/collezione-macro-per-ios\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/collezione-macro-per-ios\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/11\\\/MB__note.png\",\"contentUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/11\\\/MB__note.png\",\"width\":256,\"height\":256},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/\",\"name\":\"iProg\",\"description\":\"perch\u00e9 reinventare la ruota?\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\",\"name\":\"Fabio\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"caption\":\"Fabio\"},\"description\":\"Esperienza nella progettazione e sviluppo di Applicazioni mobili. Integro le conoscenze acquisite in ambito accademico con un continuo studio di nuove tecnologie che mi permettano di creare applicazioni sempre pi\u00f9 affidabili sicure ed efficienti. Venite a trovarmi sul blog Fabiosoft Google+\",\"sameAs\":[\"http:\\\/\\\/www.fabiosoft.com\",\"https:\\\/\\\/www.facebook.com\\\/devfabionisci\\\/\",\"http:\\\/\\\/it.linkedin.com\\\/in\\\/fabionisci\"],\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/author\\\/fabiosoft\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Collezione di Macro per iOS - iProg","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.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/","twitter_card":"summary_large_image","twitter_title":"Collezione di Macro per iOS - iProg","twitter_description":"Di seguito elenco alcune macro utili durante lo sviluppo di applicazioni in Objective-C per iOS. &nbsp; [code lang=&#8221;obj-c&#8221;]\/\/ Gradi a Radianti #define degreesToRadians(x) (M_PI * x \/ 180.0)[\/code] [code lang=&#8221;obj-c&#8221;]\/\/ Invalidazione Timer #define UA_invalidateTimer(t) [t invalidate]; t = nil;[\/code] [code lang=&#8221;obj-c&#8221;] \/\/ Info Dispositivo #define UA_isIPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) #define... Read more &raquo;","twitter_image":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2014\/11\/MB__note.png","twitter_creator":"@iprogblog","twitter_site":"@iprogblog","twitter_misc":{"Scritto da":"Fabio","Tempo di lettura stimato":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/#article","isPartOf":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/"},"author":{"name":"Fabio","@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51"},"headline":"Collezione di Macro per iOS","datePublished":"2014-11-10T17:10:17+00:00","dateModified":"2014-11-26T17:08:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/"},"wordCount":265,"commentCount":0,"image":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2014\/11\/MB__note.png","keywords":["#Swift #Xcode6 #dev #iPhone #iPad #Mac #iOS #Apple #Software","autola","http www youtube"],"articleSection":["Objective-C iOS","Xcode Tip&amp;Tricks"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/","url":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/","name":"Collezione di Macro per iOS - iProg","isPartOf":{"@id":"https:\/\/www.iprog.it\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/#primaryimage"},"image":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2014\/11\/MB__note.png","datePublished":"2014-11-10T17:10:17+00:00","dateModified":"2014-11-26T17:08:28+00:00","author":{"@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/collezione-macro-per-ios\/#primaryimage","url":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2014\/11\/MB__note.png","contentUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2014\/11\/MB__note.png","width":256,"height":256},{"@type":"WebSite","@id":"https:\/\/www.iprog.it\/blog\/#website","url":"https:\/\/www.iprog.it\/blog\/","name":"iProg","description":"perch\u00e9 reinventare la ruota?","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iprog.it\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51","name":"Fabio","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","caption":"Fabio"},"description":"Esperienza nella progettazione e sviluppo di Applicazioni mobili. Integro le conoscenze acquisite in ambito accademico con un continuo studio di nuove tecnologie che mi permettano di creare applicazioni sempre pi\u00f9 affidabili sicure ed efficienti. Venite a trovarmi sul blog Fabiosoft Google+","sameAs":["http:\/\/www.fabiosoft.com","https:\/\/www.facebook.com\/devfabionisci\/","http:\/\/it.linkedin.com\/in\/fabionisci"],"url":"https:\/\/www.iprog.it\/blog\/author\/fabiosoft\/"}]}},"views":7486,"_links":{"self":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts\/6095","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/comments?post=6095"}],"version-history":[{"count":0,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts\/6095\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/media\/6100"}],"wp:attachment":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/media?parent=6095"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/categories?post=6095"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/tags?post=6095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}