Swift關(guān)鍵字

//構(gòu)造方法
    init() //構(gòu)造函數(shù)
    init?() //可失敗的構(gòu)造函數(shù)
    init!() //

//通用泛型
id   Anyobject 

//屬性相關(guān)
(setter==)(getter==)在swift中被忽略
nullable   夜惭?
nonull  
未標(biāo)記  !

//閉包
swift中的閉包默認(rèn)捕獲變量的方式相當(dāng)于oc中block標(biāo)記__block方式

//類相關(guān)
不能在swift中繼承oc的類
如果在swift中遇到oc中不支持的命名可以用@objc(name)為屬性褪尝、枚舉、方法桑阶、淆攻、起個(gè)別名
@nonobjc用來(lái)標(biāo)記oc中不支持
dynamic將屬性或者方法標(biāo)記為dynamic就是告訴編譯器把它當(dāng)做oc里的屬性或者方法來(lái)使用(runtime)
#keyPath(class.property) == "property"
@IBDesignable 
@IBInspectable

@NSCopying

coreData @NSManaged

as

String.Index and Range

NS_SWIFT_NOTHROW 將不會(huì)使用swift的異常拋出機(jī)制

is   isKindOfClass

CF_SWIFT_NAME這個(gè)宏可以將c中的屬性或者函數(shù)轉(zhuǎn)換為swift

Color ColorCreateWithCMYK(float c, float m, float y, float k) CF_SWIFT_NAME(Color.init(c:m:y:k:));

如果使用了NS_ENUM 在swift中被處理為對(duì)應(yīng)的枚舉,沒有NS_ENUM會(huì)翻譯成為結(jié)構(gòu)體 

NS_OPTIONS修飾的枚舉茅坛,在swift中是OptionSet類型結(jié)構(gòu)體冠息。

將oc的方法或使用 NS_SWIFT_UNAVAILABLE()可以讓他在swift中不可用

將oc的方法或者屬性使用NS_SWIFT_NAME()可以為他們?cè)趕wift中命一個(gè)別名

// return:返回aString的索引琴儿,如果未找到的話則返回 NSNotFound // 注:NSNotFound在Objective-C中定義為NSIntegerMax,我們?cè)谄谕朔椒ㄔ赟wift中調(diào)用能返回nil 重定義Objective-C接口
- (NSUInteger)indexOfString:(NSString *)aString NS_REFINED_FOR_SWIFT; 

@available()屬性聲明來(lái)指定可用性信息茵休。例如:
@available(iOS8.0,OSX10.10,*)
funcstartUserActivity()->NSUserActivity{
...
}

@INLINE

這個(gè)屬性提供編譯器內(nèi)聯(lián)提示薪棒。有效的值為 __always
 和 never
手蝎。除非我非常確定需要,否者我不會(huì)使用這個(gè)(特別是 __always
)俐芯。關(guān)于它的使用方式還不是很清楚棵介。在一些有限的測(cè)試中它還能生效,但不同測(cè)試環(huán)境效果也可能不同吧史。
修改:進(jìn)一步解釋邮辽,盡管 LLVM 有強(qiáng)制內(nèi)聯(lián)的概念,但我們現(xiàn)在并不清楚這個(gè)屬性是否與其直接關(guān)聯(lián)贸营。我們也不清楚是否有大小限制導(dǎo)致編譯器忽略它吨述,跳過(guò)內(nèi)聯(lián)。理論上它本應(yīng)該有這個(gè)行為钞脂,但是我不敢保證它有锐极。
記住 @inline
 屬性在 debug 編譯下會(huì)被忽略(當(dāng) optimization 被關(guān)閉)。
(譯者注:關(guān)于 optimization 可以看[這篇文章](http://ios.jobbole.com/81937/))
@TRANSPARENT

我原本不把這個(gè)列入清單芳肌。它會(huì)使編譯器更早地在構(gòu)建流程中進(jìn)行內(nèi)聯(lián)函數(shù)灵再。它的作用是使[“像(Int, Int)這種非常簡(jiǎn)單的函數(shù)”不應(yīng)該是一個(gè)獨(dú)立的函數(shù)”](https://devforums.apple.com/message/988972#988972)
@transparent
 函數(shù)是內(nèi)聯(lián)的,即使是在沒有 optimization 的 debug 模式下, 所以像 1 + 1
這種簡(jiǎn)單函數(shù)也可以調(diào)用運(yùn)行很快. 否則它的作用就像是 @inline(__always)
.

@AVAILABILITY

這個(gè)屬性標(biāo)記那些只在某些特定版本或平臺(tái)上有效的對(duì)象亿笤。第一個(gè)參數(shù)是平臺(tái)翎迁。可以是*
(所有)净薛、iOS
 或 OSX
汪榔。如果需要針對(duì)多個(gè)不同平臺(tái),可以指定多個(gè) @availability
 屬性肃拜。
第二個(gè)參數(shù)可以是 unavailable
痴腌,表明對(duì)于給定的平臺(tái)不可用。相對(duì)地燃领,你可以聲明一個(gè)或多個(gè)版本的組合:introduced
, deprecated
, 和 obsoleted
士聪。Obsoleted 意味著已被移除,deprecated 表示如果使用就會(huì)給出警告猛蔽。最后一個(gè)參數(shù)你可以添加 message
剥悟,當(dāng)被使用的時(shí)候,編譯器會(huì)輸出這些提示曼库。一些例子:

@availability(*, unavailable)
  
  func foo() {}
  
  @availability(iOS, unavailable, message="you can't call this")
  
  func foo2() {}
  
  @availability(OSX, introduced=10.4, deprecated=10.6, obsoleted=10.10)
  
  @availability(iOS, introduced=5.0, deprecated=7.0)
  
  func foo3() {}

 @asmname
  
  該屬性給出了函數(shù)区岗、方法或?qū)傩詫?shí)現(xiàn)的符號(hào)名稱。如果你已經(jīng)知道對(duì)應(yīng)的函數(shù)參數(shù)及其類型毁枯,那么就可以直接調(diào)用Swift的內(nèi)部標(biāo)準(zhǔn)庫(kù)函數(shù)慈缔,甚至不用頭文件,也可以方便地調(diào)用C語(yǔ)言編寫的函數(shù):
  
  [cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片
  
  @asmname("function") func f()
  
  @unsafe_no_objc_tagged_pointer
  
  上面這個(gè)仍然是個(gè)謎种玛,但我猜測(cè)它是在告訴Swift與Objective-C聯(lián)系的時(shí)候不要使用tagged pointer藐鹤。
  
  @semantics
  
  這又是另一個(gè)謎颅拦。參數(shù)看起來(lái)像是array.mutate_unknown或array.init這樣的字符串?dāng)?shù)組。想必這是要告訴編譯器(或靜態(tài)分析器)函數(shù)是如何工作的教藻。

@autoclosure 關(guān)鍵字,是 Swift 引入的一個(gè)便捷操作右锨,旨在讓我們使用閉包作為參數(shù)的時(shí)候括堤,更加的方便,簡(jiǎn)化語(yǔ)法形式绍移,我們就來(lái)看看如何使用吧悄窃。


@warn_unused_result 函數(shù)返回值
warn_unused_result你可以為方法添加這個(gè)屬性,這樣當(dāng)你對(duì)函數(shù)不正確調(diào)用蹂窖,或者調(diào)用該方法卻沒有使用它的結(jié)果時(shí)轧抗,就會(huì)獲得提醒。message 參數(shù)用來(lái)提供當(dāng)你調(diào)用方法卻沒使用結(jié)果時(shí)編譯器給出的警告瞬测。
mutable_varient 用來(lái)提供你所使用的non mutating 方法的mutating 版本方法的名字横媚。比如,Swift標(biāo)準(zhǔn)庫(kù)里面提供mutating 方法SortInPlace() 和 non mutating方法 sort() 如果你調(diào)用sort() 但卻并沒有用到它的結(jié)果月趟,編譯器就會(huì)猜測(cè)你想用的是SortInPlace()灯蝴。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市孝宗,隨后出現(xiàn)的幾起案子穷躁,更是在濱河造成了極大的恐慌,老刑警劉巖因妇,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件问潭,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡婚被,警方通過(guò)查閱死者的電腦和手機(jī)狡忙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)址芯,“玉大人去枷,你說(shuō)我怎么就攤上這事∈歉矗” “怎么了删顶?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)淑廊。 經(jīng)常有香客問我逗余,道長(zhǎng),這世上最難降的妖魔是什么季惩? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任录粱,我火速辦了婚禮腻格,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘啥繁。我一直安慰自己菜职,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布旗闽。 她就那樣靜靜地躺著酬核,像睡著了一般。 火紅的嫁衣襯著肌膚如雪适室。 梳的紋絲不亂的頭發(fā)上嫡意,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音捣辆,去河邊找鬼蔬螟。 笑死,一個(gè)胖子當(dāng)著我的面吹牛汽畴,可吹牛的內(nèi)容都是我干的旧巾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼忍些,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼菠齿!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起坐昙,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤绳匀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后炸客,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疾棵,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年痹仙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了是尔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡开仰,死狀恐怖拟枚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情众弓,我是刑警寧澤恩溅,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站谓娃,受9級(jí)特大地震影響脚乡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜滨达,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一奶稠、第九天 我趴在偏房一處隱蔽的房頂上張望俯艰。 院中可真熱鬧,春花似錦锌订、人聲如沸竹握。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)啦辐。三九已至,卻和暖如春劈猪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背良拼。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工战得, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人庸推。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓常侦,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親贬媒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子聋亡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 關(guān)鍵字inout:當(dāng)我們需要通過(guò)一個(gè)函數(shù)來(lái)改變函數(shù)外面變量的值(以引用方式傳遞)。通俗的講:就是使用inout關(guān)鍵...
    管樂_VICTOR閱讀 517評(píng)論 0 1
  • 一 @mutating 修飾在方法前 修改本屬性的值 swift的兩種類型:值類型 和 引用類型 值類...
    Theshy閱讀 517評(píng)論 0 2
  • class關(guān)鍵字除了有自定義類的作用, 還有聲明類方法的作用. 資料鏈接: 1际乘、 方法–類型方法 2坡倔、繼承–防止重...
    xing_zhu閱讀 333評(píng)論 0 0
  • 企鵝牧場(chǎng)是一座主題公園,很大脖含。 非常大罪塔,還沒有開放。 通過(guò)我老板的解釋和我初來(lái)的所見养葵,它是類似侏羅紀(jì)公園的場(chǎng)所...
    吟游的貓老師閱讀 263評(píng)論 0 1
  • 離開成都算起來(lái)已有半月有余征堪,但是想起這次成都之旅,風(fēng)景已忘了大半关拒,唯獨(dú)美食還記憶猶新佃蚜,不寫點(diǎn)兒什么,總感覺有些愧...
    執(zhí)著的大魚閱讀 1,338評(píng)論 0 3