设为首页 加入收藏

TOP

从Pitre《Swift 基础教程2nd》开始(一)
2017-10-09 14:26:26 】 浏览:2537
Tags:Pitre Swift 基础 教程 2nd 开始

     看了两天《Learn Objective-C on the MAC》 中文版本《Objective-C基础编程》,大概认真读到了第9章内存管理部分,感觉这语言可比C++简单多了。

      第一天,因为有C语言基础的缘故,我在windows 上安装了GNUstep (Objective-C)开发环境,变看电子书籍,边在PC上编译运行树上的示例,几乎一个都没放过,还做了不少笔记。 (毕竟作者 Mark Dalrymaple & Scott Knaster 是高屋建瓴,叙述技术娓娓道来,将其实很深的技术要点深入浅出地讲出,言简意赅,还将Objc与C语言做对比来说明,印象深刻)。不知不觉就在第一天看完了前8章。

 但是从第9章开始内存管理部分,可没有那么好啃了。

“......我们常常讲这些规则复杂化,同样,忽略这些规则也是一种常犯的错误。如果你正在漫无目的地滥用retain 和release 方法1??修正这些错误,那就说明你还没有真正掌握这些规则。你需要放慢速度,休息一下,然后再继续阅读......“ 在《Objective-C基础编程》中,作者如是说。

看说的多好,欲速则不达。

同时,我在临睡前也翻翻知乎的帖子,查看一下前辈的学习建议和曲线。

个人总结如下:

  1. 如果确定要长期在MAC/IOS下开发,Objective-C & swift 都要学,有了Objc 基础的人千万不要轻视对swift的学习,当然学习C/C++的对Objc/swift 不屑的早晚有后悔的一天。 毕竟语言只是个工具,如果非常熟悉某种语言的话,其实学习objc/swift 的代价会非常小。
  2. 个人在前两天决心入手MAC book前涉猎了一下app store 上的调查,总结出的结论是: 技术在MAC/IOS上不是瓶颈,难得的是想法和创意。所以在确定要开发项目前,先做一些调查,有利可图再继续做下去,不要埋首到技术钻研和无穷尽的编码中,那样太没有趣味了。

看了《Objective-C基础编程》初步对Objc 有了个初步的了解, (条条框框比C++多,但是要比C 多了不少,掌握起来其实有很大难度的)。

但是swift 倒是一门易学易用的语言,在图书馆借到了 Pitre 的《swift 基础教程2nd》,粗略翻了一下,这门语言可跟javascipt 很像呀。 

好了,开始上路。

  • Swift 2 是Apple 从头打造的现代语言,功能强大且易于学习。Apple公司已将其作为日益增长的iOS/watchOS/tvOS/Mac OS X 应用程序的开发语言
  • Xcode  目前最新的Xcode 最新版本是Xcode8.3
  • LLVM 在xcode 中,LLVM在幕后工作,这种编译器技术让Swift 语言变得优雅,并将Swift 代码转换为Apple设备处理器能够运行的机器吗
  • REPL (Read-eva l-Print-Loop)是一个命令行工具,可用于快速尝试Swift 代码。在MAC OS X中,可在terminal 中运行它
  • playground 在Xcode中,提供了交互性和实时的结果,非常适合用来学习Swift

边看书边实践边写随笔:

Chapter 1 Swift 简介

1. 在Terminal 中输入xcrun swift 可进入REPL,进行swift代码测试

2. 使用var 定义变量,使用let 定义常量

3. swift 基本类型:

Bool, Int ,Int32,Int64,Int8,Int16, UInt,UInt32,UInt64,UInt8,UInt16,Float,Double,Character,String

4.  数学运算法  加 (+),减 (-),乘 (*),除 (/),各种语言在这点都是一个德性。

5. 数值表示法, 二进制,八进制,16进制,科学计数法,与C同

6. 轻松显示字符串

 使用嵌入表示法\() 来引用变量/常量,如

let  n=10
let  name= “Tom”
let  city=“Shanghai”
print (“I am \(name), from \(city), age=\(n)")

 7. 使用typealias 定义别名,与C中的typedef 同,如

typealias EightBits=UInt8
var reg:EightBits=0

 8.元祖 (Tuple) 元祖是由一个或多个变量/常量/字面量组成的单个实体,如

let myDreamCar=(2017,"Mercedes-Benz","M-Class")
print (myDreamCar.0)
print (myDreamCar.1)
print (myDreamCar.2)

 9. 可选类型, (现在还不明白这个用处是?)

var v: Int?

 Chapter2  集合

1. 数组

let candyJar=["Peppermints", "Gooey Bears","Happy Ranchers"]
print (candyJar[0])
candyJar.append("Candy Canes") //!!! error ,the array is constant

var refillableCandyJar =candyJar //将常量数组赋给变量数组
refillableCandyJar.append("Candy Canes")
refillableCandyJar+=[Peanut Clusgters"];
refillableCandyJar+=["Banna Taffy","Bubble Gum"]

var h20:[String]=["Hydogen","Hydrogen","Oxygen"]; //如果要在声明数组时指定其值的类型

 与C同,数组中包含的元素类型必须相同。

用var 定义的是可变的数组,使用let定义的是常量数组。

swift语言中的数组可以类比为C中的向量 vector。

swift中数组可以修改/替换(指定数组索引并赋给它新值即可),删除(removeAtIndex/removeLast),插入(insert:atIndex),合并(+)

  • 字典

字典包括两个不同的部分:键 (key)和 值 (value),键和值的类型可以不同,但所有键的类型都必须相同,所有值的类型也必须相同。

va r dict =["one":1, "two":2,"three":3,"four":4]
print (dict["one"])  //find

dict["five"]=5 //add

dict["one"]=11 //update

dict["one"]=nil //dele
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Swift 3.1 的一些新特性 下一篇《Swift 基础教程2nd》循环和控制..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目