常用宏定義 - 系統相關


/** 是否iPad */
#define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)/** 是否iPad */
#define someThing (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)? ipad: iphone/** 獲取系統版本 */
#define IOS_VERSION [[UIDevice currentDevice] systemVersion] floatValue]
#define CurrentSystemVersion [UIDevice currentDevice] systemVersion]/** 獲取當前語言 */
#define CurrentLanguage ([NSLocale preferredLanguages] objectAtIndex:0])/** 判斷是否 Retina屏、設備是否%fhone 5、是否是iPad */
#define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [UIScreen mainScreen] currentMode].size) : NO)
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [UIScreen mainScreen] currentMode].size) : NO)
#define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)/** 判斷設備的操做系統是不是ios7 */
#define IOS7 ([[UIDevice currentDevice].systemVersion doubleValue] >= 7.0]/** 判斷當前設備是不是iphone5 */
#define kScreenIphone5 (([UIScreen mainScreen] bounds].size.height)>=568)/** 獲取當前屏幕的高度 */
#define CHScreenH ([UIScreen mainScreen].applicationFrame.size.height)
/** 獲取當前屏幕的寬度 */
#define CHScreenW ([UIScreen mainScreen].applicationFrame.size.width)/** 定義一個define函數 */
#define TT_RELEASE_CF_SAFELY(__REF) { if (nil != (__REF)) { CFRelease(__REF); __REF = nil; } }/** 判斷是真機還是模擬器 */
#if TARGET_OS_IPHONE//iPhone Device
#endif#if TARGET_IPHONE_SIMULATOR//iPhone Simulator
#endif/** 檢查系統版本 */
#define SYSTEM_VERSION_EQUAL_TO(v) ([[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v) ([[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v) ([[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)

轉載于:https://www.cnblogs.com/CH520/p/9311248.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451195.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451195.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451195.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

周鴻祎詳解360手機戰略:賺錢不靠硬件靠服務

摘要:奇虎360總裁周鴻祎不久前在微博上宣布360公司將要進軍手機行業的消息后,一度掀起業界的軒然大波,褒貶之聲均不絕于耳。對于合作廠商的選擇,周鴻祎直言出貨量是一個重要參考指標,“每年的出貨量最少不低于500萬~10…

解決報錯:;Syntax error on token(s), misplaced construct(s)

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 報錯如題,這是語法錯誤,如括號不匹配、代碼沒有寫在一個方法中、少分號、變量名不對、少半個大括號 ... 總之就…

java移位運算符

java中有三種移位運算符 << : 左移運算符&#xff0c;num << 1 相當于num乘以2 >> : 右移運算符&#xff0c;num >> 1 相當于num除以2 >>> : 無符號右移&#xff0c;忽略符號位&#xff0c;空位都以0補齊…

在頁面上顯示PDF

/// <summary>/// 讀取PDF文件/// </summary>/// <param name"fName">文件名稱(可以從其他地方傳進來)</param>/// <returns></returns>public FileStreamResult readPDF(string fName "pdf文件.pdf"){string dirp …

7.15模擬賽

T1.fuction 吐槽一波錯誤拼寫。 跟考場思路差不多&#xff0c;只不過細節挺多的呢。 判掉a0,b0,c0的幾種組合&#xff0c;還有負數的情況要打標記特殊處理。 然后就是一個拓歐啦&#xff0c;先求出ggcd(a,b)&#xff0c;順便求出axbyg的x和y&#xff0c;然后根據裴蜀定理&#…

蘇寧國美盈利報警:線下乏力線上重金加碼

摘要&#xff1a;國美電器則發布盈利預警&#xff0c;預計今年一季度凈利潤同比大幅減少———這也致使國美股價最近連續低位徘徊。蘇寧電器一季報顯示&#xff0c;今年1至3月公司營業收入226 .41億元&#xff0c;同比增長10%&#xff0c;但盈利9.51億元&#xff0c;同比下降15…

WebService到底是什么?

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一、序言 大家或多或少都聽過WebService&#xff08;Web服務&#xff09;&#xff0c;有一段時間很多計算機期刊、書籍和網站都大肆的提…

JAVA中PO,VO,DTO,BO,DAO,POJO解釋

&#xff08;一&#xff09;VO與PO ORM是Object Relational Mapping&#xff08;對象關系映射&#xff09;的縮寫。通俗點講&#xff0c;就是將對象與關系數據庫綁定&#xff0c;用對象來表示關系數據。在O/R Mapping的世界里&#xff0c;有兩個基本的也是重要的東東需要了解&…

互掐盜播風云再起 三大視頻網站存和解可能

摘要&#xff1a;近期&#xff0c;視頻網站互掐盜播風云再起。騰訊視頻已于5月13日向PPS開炮&#xff0c;宣稱PPS盜播其五部獨家劇&#xff1b;5月14日&#xff0c;搜狐視頻亦指責PPS盜播其23部熱播劇。面對這兩家的連續開炮&#xff0c;PPS方面也進行了相應的回應&#xff0c;…

springboot和quartz整合實現動態定時任務(持久化單節點)

Quartz是一個完全由java編寫的開源作業調度框架,為在Java應用程序中進行作業調度提供了簡單卻強大的機制&#xff0c;它支持定時任務持久化到數據庫&#xff0c;從而避免了重啟服務器時任務丟失&#xff0c;支持分布式多節點&#xff0c;大大的提高了單節點定時任務的容錯性。s…

JAVA中protected的作用

類NewObject中有protected修飾的方法或者屬性&#xff0c;則&#xff1a; 同一個包中&#xff1a; 可在同一個包里的子類中實例化NewObject類獲得對象&#xff0c;然后可用該對象訪問protected修飾的方法或者屬性&#xff0c;即.操作訪問。可在同一個包里的非子類中實例化NewOb…

wsimport 不是內部或外部命令,也不是可運行的程序或批處理文件

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 今天使用wsimport生成webservice client端代碼&#xff0c;wsimport提示不是內部或外部命令&#xff0c;也不是可運行的程序或批處理文件…

靜態變量的多線程同步問題

2019獨角獸企業重金招聘Python工程師標準>>> 我們先來討論一個問題&#xff0c;一個類的靜態變量當類被多次實例化的時候&#xff0c;靜態變量是否會受影響&#xff1f;首先我們應該清楚的是靜態變量是在類被JVM classloader的時候分配內存&#xff0c;并且是分配在…

extends和implements區別

extends和implements區別 extends與implements的不同 1、在類的聲明中&#xff0c;通過關鍵字extends來創建一個類的子類。 一個類通過關鍵字implements聲明自己使用一個或者多個接口。 extends 是繼承某個類, 繼承之后可以使用父類的方法, 也可以重寫父類的方法; imple…

評論:電商巨頭們誰有勇氣曬曬“價格戰”賬單?

摘要&#xff1a;國內電商接二連三上演的“價格戰”&#xff0c;點燃了消費者的購買熱情。在筆者看來&#xff0c;如果有哪個大型電商有勇氣亮出價格戰賬單&#xff0c;那對競爭對手的刺激和打擊效果將非同一般。曬出了賬單后&#xff0c;消費者對購物場所的選擇也將一目了然&a…

The xxx collides with a package/type

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 當類和包&#xff0c;重名時&#xff0c;包會報錯誤&#xff1a;The package aaa.a collides with a type&#xff1b;類也會報警告&…

Hive 行列轉換

在京東眾多業務中&#xff0c;促銷業務充滿了復雜性和挑戰性&#xff0c;因為業務的靈活性&#xff0c;很多數據都存儲成xml和json格式數據&#xff0c;這就要求下游數據分析師們需要對其做解析后方可使用 。 在眾多操作中 &#xff0c;有一種是需要對數據做行列轉換操作。 數據…

[譯] 論 Rust 和 WebAssembly 對源碼地址索引的極限優化

原文地址&#xff1a;Oxidizing Source Maps with Rust and WebAssembly原文作者&#xff1a;Nick Fitzgerald譯文出自&#xff1a;掘金翻譯計劃本文永久鏈接&#xff1a;github.com/xitu/gold-m…譯者&#xff1a;D-kylinTom Tromey 和我嘗試使用 Rust 語言進行編碼&#xff0…

Java WebService 簡單實例

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 前言&#xff1a;朋友們開始以下教程前&#xff0c;請先看第五大點的注意事項&#xff0c;以避免不必要的重復操作。 一、準備工作&…

互聯網侵入手機逐鹿背后:追求流量變現能力

摘要&#xff1a;小米聯合創始人黎萬強說&#xff0c;賣出10萬臺得免速死&#xff0c;賣出百萬臺算是得到了一張正式入行的門票。小米是一家新創公司&#xff0c;黎萬強自己說&#xff0c;原本一無所有&#xff0c;作為原創品牌&#xff0c;它選擇了口碑之路&#xff0c;則必須…