Xcode 4.4 的新特性 | LLVM 4.0 的新语法
WWDC 2012蘋果全球開發(fā)者大會(huì)上,蘋果針對(duì)LLVM編譯器都做了重大改進(jìn),新版的Xcode 4.4中的LLVM編譯器升級(jí)到了4.0,給Objective-C帶來(lái)了很多令人驚喜的特性。
注意,下面的語(yǔ)法需要下載Xcode 4.4。
1、枚舉類型的改變
老寫法:
?
[cpp]?view plaincopy老方法的問(wèn)題是枚舉值的數(shù)據(jù)范圍是模糊的,這個(gè)數(shù)值可能非常大,可能是負(fù)數(shù),無(wú)法界定
?
新寫法:
?
[cpp]?view plaincopy 新方法在列出枚舉內(nèi)容的同時(shí)綁定了枚舉數(shù)據(jù)類型NSUInteger,這樣帶來(lái)的好處是增強(qiáng)的類型檢查和更好的代碼可讀性。
?
2、使用的方法代碼放置的位置順序無(wú)關(guān)
沒在.h文件中聲明的方法,在時(shí)候的時(shí)候如果方法不在前面,可能會(huì)有警告。
比如:
?
[cpp]?view plaincopy
實(shí)現(xiàn):
早期編譯器編譯時(shí)會(huì)出現(xiàn):warning: instance method ‘-getString:’ not found…
?
新的編譯器會(huì)先掃描代碼中的方法,然后再編譯,這樣就避免了找不到方法這種情況了
3、property屬性簡(jiǎn)化
?
@property對(duì)于使用Objective-C的程序員來(lái)說(shuō)是相當(dāng)熟悉的,property方便自動(dòng)生成變量的getter 和setter。在.h文件中聲明之后,還要在.m文件中加上@synthesize關(guān)鍵字,這樣才能完成自動(dòng)getter 和setter的過(guò)程。
比如說(shuō),我在.h文件中寫了
?
@property?(strong,?nonatomic)?NSDictionary?*order;
我還要去對(duì)于的.m文件中寫上
?
@synthesize?order;
是不是感覺很多余啊?現(xiàn)在在語(yǔ)法新特性中不用寫這行代碼了,新版的編譯器幫你實(shí)現(xiàn)這行代碼,這叫幫人幫到底。
也是說(shuō),你在.h文件中聲明order屬性后,就可以直接在實(shí)現(xiàn)文件中使用該屬性的getter和setter方法,編譯器還會(huì)根據(jù)屬性的可讀和可寫自動(dòng)判斷是否提供setter方法。智能多了。
4、語(yǔ)法的簡(jiǎn)化
做過(guò)java 或C#開發(fā)的都知道,初始化或賦值一個(gè)變量一般用一個(gè)“=”號(hào)就搞定了,到了Objective-C后,每次都要用一個(gè)很長(zhǎng)的函數(shù)才能賦值活初始化。現(xiàn)在簡(jiǎn)化多了。
咱們看看各個(gè)數(shù)據(jù)類型簡(jiǎn)化前后的對(duì)比。
4.1、NSNumber 類型
老寫法:
?
[cpp]?view plaincopy?
新寫法:
?
[cpp]?view plaincopy?
4.2、NSArray類型
老寫法:
?
[cpp]?view plaincopy
新寫法:
?
?
[cpp]?view plaincopy
新的寫法去掉了后面討厭的nil。
?
4.3、NSDictionary類型
老寫法
[cpp]?view plaincopy新寫法
?
?
[cpp]?view plaincopy?
運(yùn)行結(jié)果正常:
{
? ? key1 = value1;
? ? key2 = value2;
? ? key3 = value3;
}
5、快速通過(guò)下標(biāo)定位對(duì)象
他們說(shuō)新的語(yǔ)法這樣是可以的,數(shù)組和字典都可以通過(guò)下標(biāo)訪問(wèn),
?
[cpp]?view plaincopy可是事實(shí)是這樣的:
?
現(xiàn)實(shí)總是殘忍的。于是google 了一下,發(fā)現(xiàn)這個(gè)語(yǔ)法是針對(duì)iOS 6 or OS X 10.8 SDKs的,我沒有ios 6模擬器而已沒有10.8 SDKs。所以報(bào)錯(cuò)了。可以參考這里:http://stackoverflow.com/questions/11425976/compiler-error-expected-method-not-found-when-using-subscript-on-nsarray
下面是WWDC 2012視頻的一些關(guān)于新語(yǔ)法特性的截圖:
截圖可以給你解釋,新的語(yǔ)法特性編譯器是怎么實(shí)現(xiàn)的。
轉(zhuǎn)載于:https://www.cnblogs.com/easonoutlook/archive/2013/05/30/3108091.html
總結(jié)
以上是生活随笔為你收集整理的Xcode 4.4 的新特性 | LLVM 4.0 的新语法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android listview的一些设
- 下一篇: office 自动编号系列碰到问题小解