swift学习第一课程(白胡子老头的斯坦福大学ios公开课CS193P)

swift语言发表已经快四年时间了,现在也已经更新到swift4了,相对已经稳定,同时Objective-C向swift的语言转换,也是IOS开发的大势所趋,为了不被时代所抛弃,也为了增加自己的知识储备量,决定开始学习swift

曾经在学习Objective-C的时候也是通过白胡子老头的“斯坦福大学公开课”学习的,所以在想要学习swift的时候,第一时间想到的也是这个老先生的课程,没想到搜索了一下,还真的有(点这里),只不过是swift3的课程,不过也没什么关系,因为swift4跟swift3相比,更新的东西并不多 ,不妨可以先学习swift3,当语法与基础知识等都了解了,能够顺利使用了之后再去了解swift4的相关更新也不迟。

由于每天下班比较晚,所以可能更新每天学习的东西比较少,时间也不固定,但是重在积累吧。

也没发过什么博客,所以对排版也没什么心得,主要用于记录自己的学习轨迹和知识点,望海涵!

在每一项知识点后边都会挂上一个此相关知识点的比较详细的解释的链接,以供之后查看

变量和常量的声明 相关详细链接

1、变量的声明
var digit : String
注:一般可以取消定义的类型,写成var digit,因为swift会根据上下文进行类型推到
2、常量的声明
let digit
在声明时区分变量和常量很重要的原因是,当你改变一个常量的时候,编译器会给你报错,并且能确定值在之后一直不会变化的时候,就定义为常量

方法函数 相关详细链接

下方就是swift方法的定义。例子:

①  func drawHorizontalLine(from startX: Double, to endX:Double, using color: UIColor) -> String{
        distance = endX - startX
    }
②  @IBAction func touchDigit(_ sender: UIButton) {
    }
  • 1 、①中的startX,endX,color为方法的形参:函数内部的形参名称,只在函数内部使用,例如方法内部的:distance = endX - startX
  • 2、①中的Double,UIColor是这个参数的类型
  • 3、①中的from,to,using是方法外部使用的实参标签
    1. _表示不需要标签,调用时不用写标签。例如②方法可以这样调用:touchDigit(someButton))。一般在标签名存在于函数名或者参数类型中时,使用_。补充:_一般最多用于第一个参数的标签。
    2. 调用函数时,使用的是这些外部名称。例如:
      drawHorizontalLine(from: 5.0, to: 8.0, using: UIColor.blue)
    3. 并且这些外部实参标签在调用时是不可缺少的。例如:
      drawHorizontalLine(5.0, 8.0, UIColor.blue)是不允许的
  • 4、-> String为返回值

字符串的拼接 相关详细链接

使用\()进行拼接,括号中可以放任何能用字符串标识的内容。例如:

var digit : String = "example"
print("\(digit) was called")

可选类型 相关详细链接

  • 1、可选类型值有两个值:有值和缺省值,当有值的时候,会存在一个关联值,关联值可以是String,Double等等等等,当只想获取其关联值的时候,需要进行解包
  • 2、创建的UILabel属性是可选的var display: UILabel!,是因为当用户界面刚显示出来的时候,系统需要一点时间关联控件和代码。所以刚加载的时候,它是缺省值的。关联完之后就是有值的了,之后一直都是有值的,这就是这个“!”的作用
  • 3、当赋值给可选类型的时候,并不需要解包,直接赋值就可以了
  • 4、另一种安全的解包方式,推荐使用!
//(如果sender.currentTitle有值,那么把关联值赋值给mathematicalSymbol)
if let mathematicalSymbol = sender.currentTitle {
   print(mathematicalSymbol)
}

类型转换 相关详细链接

这的类型转换只记录最基础的一种,其他的方式再相关详细链接中查看
把其他类型转换成字符串类型:String(Double.pi)
其他基础类型同理

计算型属性 相关详细链接

把代码放在属性的后面的大括号里,就能实时计算变量的值,而不是依靠存储的值.
所以可以有代码负责计算获取的值(get),也可以有代码处理赋值的情况(set)
例如:

var displayValue : Double {
    get {
        //当displayValue在等号右边的时候,调用这里
        return Double(display.text!)!
        }
    set {
        //当displayValue在等号左边的时候,调用这个(newValue就代表要赋值的值,它和变量类型相同)
        display.text = String(newValue)
       }
}

杂项

  • 1、swift要求所有属性都要初始化,但是可选类型是例外,因为可选类型可以不赋值,因为初始化的时候被自动初始化为nil,nil表示缺省值。当然也可以手动初始化给一个初始值,但是如果没有的话,就是缺省值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • 转载自:https://github.com/Tim9Liu9/TimLiu-iOS[https://github...
    香橙柚子阅读 8,120评论 0 35
  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 4,297评论 0 12
  • 最怕半夜醒来,脑子里昏昏沉沉,越是用力的睡越睡不着。好吧,只有拿出手机,刷知乎,看小说。心里想着,什么时候才...
    老落阅读 213评论 0 0
  • 1996年,那年你15岁,你妈骑着一辆老旧的自行车带你去街上买鞋,来奖励你期中考试的好成绩。那时的街道远没有现在如...
    桠桠阅读 413评论 0 1
  • “新的一天又开始了”唐优萱说到“不知道若妍怎么样了呢” 叮叮。。。。。。优萱的手机响了,“喂?刘。。。刘晴帆?”唐...
    喵可ovo阅读 225评论 0 1