1. 程式人生 > >iOS開發Tips3

iOS開發Tips3

  • SEL
  • 輸出函式
  • nil,Nil,Null,NSNull,null區別
  • 檢測系統版
  • iOS中使用blend改變圖片顏色

---------------------------------------------------------------------

SEL

Objective-C在編譯的時候,會根據方法的名字(包括引數序列),生成一個用 來區分這個方法的唯一的一個ID,這個ID就是SEL型別的。我們需要注意的是,只要方法的名字(包括引數序列)相同,那麼它們的ID都是相同的。就是 說,不管是超類還是子類,不管是有沒有超類和子類的關係,只要名字相同那麼ID就是一樣的。

       我們可以方便的通過方法的名字,獲取到方法的ID也就是我們所說的SEL,反之亦然。具體的使用方法如下:

SEL 變數名 = @selector(方法名字);     
SEL 變數名 = NSSelectorFromString(方法名字的字串);     
NSString *變數名 = NSStringFromSelector(SEL引數);  
這樣的機制大大的增加了我們的程式的靈活性,我們可以通過給一個方法傳遞SEL引數,讓這個方法動態的執行某一個方法;我們也可以通過配置檔案指定需要執行的方法,程式讀取配置檔案之後把方法的字串翻譯成為SEL變數然後給相應的物件傳送這個訊息。 

  從效率的角度上來說,執行的時候不是通過方法名字而是方法ID也就是一個整數來查詢方法,由於整數的查詢和匹配比字串要快得多,所以這樣可以在某種程度上提高執行的效率。


---------------------------------------------------------------------

輸出函式

根據不同的輸出格式輸出不同的值 (%d :整形 ,%@:物件<傳送description訊息>,%s:字串)

     NSlog(@“The result is %d”,intNum); 

     CF代表Core Foundation (Cocoa)

     CFShow傳送description給它顯示的物件,CFShow列印的資訊不會顯示時間戳,NSLog會顯示,同時CFShow不需要格式字串,它只能用於物件

     CFShow(obj);

轉自:http://blog.csdn.net/tangren03/article/details/7741853

---------------------------------------------------------------------

nil,Nil,Null,NSNull,null區別

nil: A null pointer to an Objective-C object. ( #define nil((id)0) )
nil 是一個物件值。

Nil: A null pointer to an Objective-C class.

NULL: A null pointer to anythingelse. ( #define NULL ((void*)0) )
NULL是一個通用指標(泛型指標)。

NSNull: A class defines a singletonobject used to represent nullvalues in collection objects (which don't allow nilvalues).
[NSNull null]: The singleton instance of NSNull.
[NSNull null]是一個物件,他用在不能使用nil的場合。
因為在NSArray和NSDictionary中nil中有特殊的含義(表示列表結束),所以不能在集合中放入nil值。如要確實需要儲存一個表示“什麼都沒有”的值,可以使用NSNull類。NSNull只有一個方法:
+ (NSNull *) null;

---------------------------------------------------------------------

檢測系統版

 float version = [[[UIDevice currentDevice] systemVersion] floatValue];

下面是ios內其他相關資訊的判斷方法:

獲取程序資訊和裝置資訊(包括裝置型別,序列號,ios版本等)
[[NSProcessInfo processInfo] globallyUniqueString],
[[NSProcessInfo processInfo] hostName],
[[NSProcessInfo processInfo] operatingSystemName],
[[NSProcessInfo processInfo] operatingSystemVersionString],
[[NSProcessInfo processInfo] physicalMemory],
[[NSProcessInfo processInfo] processName]);
——————————————————————————————
[UIDevice currentDevice].uniqueIdentifier,
[UIDevice currentDevice].name,
[UIDevice currentDevice].systemName,
[UIDevice currentDevice].systemVersion,
[UIDevice currentDevice].model,
[UIDevice currentDevice].localizedModel,
[UIDevice currentDevice].batteryLevel
___________________________________________________
NSLog([[UIDevice currentDevice] name]); // Name of the phone as named by user
NSLog([[UIDevice currentDevice] uniqueIdentifier]); // A GUID like string
NSLog([[UIDevice currentDevice] systemName]); // "iPhone OS"
NSLog([[UIDevice currentDevice] systemVersion]); // "2.2.1"
NSLog([[UIDevice currentDevice] model]); // "iPhone" on both devices
NSLog([[UIDevice currentDevice] localizedModel]); // "iPhone" on both devices

---------------------------------------------------------------------

iOS中使用blend改變圖片顏色

相關推薦

iOS開發Tips3

SEL輸出函式nil,Nil,Null,NSNull,null區別檢測系統版iOS中使用blend改變圖片顏色 -------------------------------------------

iOS開發Tips3:迴圈的效能

遍歷列表應該是平時開發中最常見的一種操作了。說起遍歷效率,相比於其他方面的因素(可維護性,易懂等),也許遍歷的效率在你的程式碼中並不是那麼重要。但我們還是要了解一下從效能方面去考慮遍歷這個問題,以便在一寫特殊的case下知道怎麼著手去優化。下面是幾種常用的遍歷方式:1. fo

iOS開發-79】利用Modal方式實現控制器之間的跳轉

article 運用 mis cli 控制 present 沒有 dismiss 導航控制器 利用Modal方法。事實上就是以下兩個方法的運用。Modal方式的切換效果是從底部呈現。 -(void)clickModal{ WPViewController *wp

ios開發之 -- invalid nib registered for identifier

層級關系 註意 刪除 出現 ide 提示 sta tab 後來 今天在寫代碼的時候,碰到這麼一個問題: invalid nib registered for identifier (重用符) - nib must contain exactly one top level

IOS開發UI篇--一個支持圖文混排的ActionSheet

log one 簡單介紹 button action 曾經 hot uitable ios 一、簡單介紹 UIActionSheet是IOS提供給我們開發人員的底部彈出菜單控件。一般用於菜單選擇、操作確認、刪除確認等功能。IOS官方提供的下面方式對UI

iOS開發項目實戰——Swift實現圖片輪播與瀏覽

0.10 上網 timer類 開發項目 cas hub string obj tle 近期開始開發一個新的iOS應用,自己決定使用Swift。進行了幾天之後,發現了一個非常嚴峻的問題。那就是無論是書籍,還是網絡資源,關於Swift的實在是太少了,隨便一

ios開發常用的宏

sso dex osi comm ignore scac va_arg pragma weakself 轉自 http://www.cocoachina.com/bbs/read.php?tid=1719540 #define NavigationBa

IOS開發退出應用程序的代碼

exit rda har form res 方法 style rms art IOS 開發中。我知道的兩個退出程序的方法: 1. exit(0); 2. if([[UIApplication sharedApplication] respondsToSelector:

jenkins 持續集成iOS開發

read 輸入 持續集成 令行 ios開發 瀏覽器 brew 集成 ios 1,安裝jenkins,brew install jenkins 2,在瀏覽器輸入localhost:8080會出現一個網頁,要求輸入密碼,初始密碼在命令行裏復制過來就行了,形如:a5f9a94c8

iOS開發之視頻根據url獲取第一幀圖片,獲取任一幀圖片

keyword rac onerror 根據 ati parameter all ger mage + (UIImage*) thumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)time { AV

iOS開發中地圖與定位

視圖 編寫 aps 簡單 -a 第三方 span spa margin   不管是QQ還是微信的移動client都少不了定位功能,之前在微信demo中沒有加入定位功能,今天就寫個定位的小demo來了解一下定位和地圖的東西。地圖和定位看上去是挺高大上一東西。其有使用方法比

httpdns實戰感受(ios開發篇章)

strong field amp app bject 同時 handle 比較 domain 近期項目中為了解決域名問題在項目中集成了阿裏雲的第三方域名解析服務HttpDns,現在描述一下我的實戰感受 首先提出幾個問題,本文就圍繞著這幾個問題來進行編輯。 1. 為什

從零開始學習iOS開發1:認識xcode

連接 啟動圖標 主動 認識 tor 音樂 滴滴打車 啟動 and 在開始之前還是不得不提一下iPhone應用開發的工具,我當然之前是沒接觸過iPhone開發,也沒使用過apple的不論什麽一種設備。所以我的概念中僅僅知道xcode是最專業的iOS開發工具。如今它是免費

IOS開發——手勢 &amp; 傳感器 &amp; 物理引擎

github上 content 物理 alt img .net amp 技術分享 lan 這次思維導圖比較雜,demo已經所有上傳到github上,小編的github地址是:狂戳 先看下效果圖: 手勢畫板: 物理引擎: 傳感器: IOS開發——手

iOS開發-51】案例學習:動畫新寫法、刪除子視圖、視圖順序、延遲方法、button多功能使用方法及icon圖標和啟動頁設置

無法查看 font targe 技術 value lstat tostring sta dict 案例效果: (1)導入所需的素材,然後用storyboard把上半截位置和大小相對固定的東西布局起來。當然,這些控件也要定義成對應地IBOutlet和IBActio

iOS開發中,獲取iOS設備型號

bsp ios設備型號 isequal uid eve ide inf turn res 1、首先要導入頭文件   #import <sys/utsname.h> 2、代碼如下 - (NSString *)getDeviceVersionInfo{

iOS開發- SceneKit

max ios bottom ida png rtt http tom weight 打開你的Xcode 6然後新建一個項目,選擇iOS/Application/Game模板然後點擊Next。將項目命名為QuickStart,選擇開發語言為Swift,然後遊戲選用的平臺技

iOS開發中上傳JSON字符串到後臺服務器

在之前的開發中一般上傳給後臺服務器的各個字段的內容都是一些字符串,而最近在一個項目中卻需要上傳一個JSON字符串,由於之前沒上傳過JSON字符串所以感覺挺新鮮,於是上網查了相關知識,並在這裏記錄一下。 在上傳JSON字符串之前上海證券通首先需要獲取JSON字符串,JSON字符串其實也是由OC中的某個對

iOS開發 UIScrollView制作APP引導頁

touch 技術 -s code 配置 target 視圖 需要 html http://jingyan.baidu.com/article/4dc40848a341dfc8d846f152.html 聽語音 | 瀏覽:4606 | 更新:2015-02-10 12:

ios 開發 推送消息的設置

adg 一個 iap ger uia oid style default play ///註銷推送 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Menlo; color: #587ea8 } span.s1 {