iOS Swift使用過程知識(shí)點(diǎn)筆記

1、Swift 的nil和 Objective-C 中的nil區(qū)別

Swift 的nil和 Objective-C 中的nil并不一樣业栅。在 Objective-C 中,nil是一個(gè)指向不存在對(duì)象的指針螟左。在 Swift 中谈飒,nil不是指針——它是一個(gè)確定的值,用來表示值缺失肪凛。任何類型的可選都可以被設(shè)置為nil堰汉,不只是對(duì)象類型。

2伟墙、var optionalString: String? = "Hello"語句的理解

var optionalString: String? = "Hello

?表示變量optionalString可能有值翘鸭,也可能為nil,即值可能丟失戳葵。相當(dāng)于if和let一起使用判斷string是否為空

3就乓、對(duì)于2的補(bǔ)充,倘若?修飾的變量optionalString值為nil時(shí),你在訪問使用就會(huì)閃退生蚁。如下代碼會(huì)閃退

var optionalName: String? = nil
print("hello!"  + optionalName)

方法一:改為下面的寫法

print("hello, \(optionalName)")

方法二:為避免上述錯(cuò)誤我們可以給optionalName變量一個(gè)默認(rèn)值噩翠。示例如下:

var optionalName: String? = nil
let defaultName: String = "James"
print("hello!  \(optionalName ?? defaultName)")

備注:防止字符串為空是,可用 ?? 給字符串添加默認(rèn)值邦投。

4绎秒、static與class的區(qū)別

  • class 關(guān)鍵字專門用在 class 類型的上下文中的,可以用來修飾類方法以及類的計(jì)算屬性(注意:不能用在存儲(chǔ)類屬性上)尼摹。

  • 在方法的func關(guān)鍵字之前加上關(guān)鍵字static或者class都可以用于指定類方法见芹。不同的是用class關(guān)鍵字指定的類方法可以被子類重寫,但是用static關(guān)鍵字指定的類方法是不能被子類重寫的蠢涝。

  • static 可以在類玄呛、結(jié)構(gòu)體、或者枚舉中使用和二。而 class 只能在類中使用徘铝。

  • static 可以修飾存儲(chǔ)屬性,static 修飾的存儲(chǔ)屬性稱為靜態(tài)變量(常量)惯吕。而 class 不能修飾存儲(chǔ)屬性惕它。

  • static 修飾的計(jì)算屬性不能被重寫。而 class 修飾的可以被重寫废登。

  • static 修飾的靜態(tài)方法不能被重寫淹魄。而 class 修飾的類方法可以被重寫。

  • class 修飾的計(jì)算屬性被重寫時(shí)堡距,可以使用 static 讓其變?yōu)殪o態(tài)屬性甲锡。

  • class 修飾的類方法被重寫時(shí),可以使用 static 讓方法變?yōu)殪o態(tài)方法羽戒。

5缤沦、可選的類型使用?和易稠!的理解

設(shè)置可選類型是(String?)表示可選缸废,(String!)表示隱式解析可選。
如果一個(gè)變量之后可能變成nil的話請(qǐng)不要使用隱式解析可選驶社。如果你需要在變量的生命周期中判斷是否是nil的話企量,請(qǐng)使用普通可選類型。如果你在隱式解析可選沒有值的時(shí)候嘗試取值衬吆,會(huì)觸發(fā)運(yùn)行時(shí)錯(cuò)誤梁钾。和你在沒有值的普通可選后面加一個(gè)驚嘆號(hào)一樣。

逊抡?就表面你可以允許你參數(shù)賦值為nil姆泻。這個(gè)時(shí)候在使用該參數(shù)用于賦值等操作的時(shí)候必須加上零酪!或者是加入官方說明的if判斷

func testStr(){
  var str:String? = "hello"
  //var result = str + "world"http://編譯錯(cuò)誤,這個(gè)地方必須要加上拇勃!因?yàn)閟tr可能是nil四苇,如果nil的話下面的語句是不通的
  var result = str! + "world"http://如果要使用str,要加入方咆!月腋,確保編譯通過
  str = nil
  //result = str! + "world" //運(yùn)行錯(cuò)誤,因?yàn)?表示該參數(shù)可能為nil瓣赂,這個(gè)時(shí)候榆骚,程序是可以進(jìn)行賦值為nil操作的,所以在做操作的時(shí)候煌集,需要做判斷處理
  if let isnull=str{
      println("str is not null")
    }else{
      println("str is null")
    } 
}

妓肢!表示你定義的參數(shù)是不為null的。這個(gè)時(shí)候苫纤,雖然可以進(jìn)行賦值為nil的操作碉钠,但是一旦你進(jìn)行了賦值nil操作是編譯不過的

func testStr(){
    var str:String! = "hello"
    var result = str + "world"http://沒有問題,這個(gè)地方因?yàn)槎x的是卷拘!喊废,所以str肯定不為空,改語句成立
    str = nil
    result = str + "world"http://編譯通過栗弟,但是運(yùn)行時(shí)出錯(cuò)
    result = str! + "world"http://編譯通過污筷,但是運(yùn)行時(shí)出錯(cuò)。

    if let isnull=str{
        println("str is not null")
    }else{
        println("str is null")
    }
}

横腿?的使用情況
1.聲明Optional值變量
2.用在對(duì)Optional值操作中颓屑,用來判斷是否能相應(yīng)后面的操作

斤寂!的使用情況:
1.強(qiáng)制對(duì)Optional值進(jìn)行拆包(unwrap)
2.聲明Implicitly Unwrapped Optionals值耿焊,一般用于類中的屬性

6、for循環(huán)遍歷數(shù)組

let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
    if score > 50 {
        teamScore += 3
    } else {
        teamScore += 1
    }
}
print(teamScore)

7遍搞、方法名中的->是參數(shù)和返回值類型的“分水嶺”罗侯,->前面括號(hào)中是參數(shù)、->后面是返回值類型溪猿。如下示例:

func greet(person: String, day: String) -> String {
    return "Hello \(person), today is \(day)."
}

8钩杰、方法參數(shù)標(biāo)簽前添加_ 或自定義標(biāo)簽:在調(diào)用的時(shí)候該參數(shù)標(biāo)簽不顯示。如:

//方法定義實(shí)現(xiàn)
func greet(_ person: String, on day: String) -> String {
    return "Hello \(person), today is \(day)."
}

//方法調(diào)用
greet("John", on: "Wednesday")
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末诊县,一起剝皮案震驚了整個(gè)濱河市讲弄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌依痊,老刑警劉巖避除,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怎披,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡瓶摆,警方通過查閱死者的電腦和手機(jī)凉逛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來群井,“玉大人状飞,你說我怎么就攤上這事∈樾保” “怎么了诬辈?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)荐吉。 經(jīng)常有香客問我自晰,道長(zhǎng),這世上最難降的妖魔是什么稍坯? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任酬荞,我火速辦了婚禮,結(jié)果婚禮上瞧哟,老公的妹妹穿的比我還像新娘混巧。我一直安慰自己,他們只是感情好勤揩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布咧党。 她就那樣靜靜地躺著,像睡著了一般陨亡。 火紅的嫁衣襯著肌膚如雪傍衡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天负蠕,我揣著相機(jī)與錄音蛙埂,去河邊找鬼。 笑死遮糖,一個(gè)胖子當(dāng)著我的面吹牛绣的,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播欲账,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼屡江,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了赛不?” 一聲冷哼從身側(cè)響起惩嘉,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎踢故,沒想到半個(gè)月后文黎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奏路,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年臊诊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鸽粉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抓艳,死狀恐怖触机,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情玷或,我是刑警寧澤儡首,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站偏友,受9級(jí)特大地震影響蔬胯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜位他,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一氛濒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鹅髓,春花似錦舞竿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至醒串,卻和暖如春执桌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芜赌。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工仰挣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人较鼓。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓椎木,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親博烂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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

  • 生活中難免會(huì)遇到一些事情漱竖,使心情不錯(cuò)的你瞬間變得憤怒起來禽篱,埋怨也瞬間從心中升起,然后覺得全世界都在和你作對(duì)馍惹,...
    Do_yourself閱讀 284評(píng)論 0 0
  • 愛上一個(gè)人躺率,最大的恐懼是什么玛界?你怕失去這個(gè)人的愛。你仍然是胖子悼吱,她卻開始苗條慎框,夠格拍對(duì)比照代言減肥產(chǎn)品,你覺得自己...
    春語chunyu閱讀 130評(píng)論 0 1
  • 自從那次寫不完作業(yè)就不準(zhǔn)吃飯以后后添,回到家我就讓他先玩會(huì)笨枯,吃完飯?jiān)趯懽鳂I(yè),遇西,寫作業(yè)真的很費(fèi)勁馅精,我跟他說,我說寫作業(yè)吧...
    劉梓涵媽媽閱讀 172評(píng)論 0 0
  • 在工作中粱檀,很多領(lǐng)導(dǎo)喜歡鞭打快牛洲敢,或者只是對(duì)慢牛有懲罰而對(duì)快牛沒有獎(jiǎng)勵(lì),這些茄蚯,都無助于激活組織與個(gè)人压彭。應(yīng)該對(duì)工作中的...
    willing001閱讀 1,948評(píng)論 1 50