首页 分享 Apple苹果IOS开发Swift编程语言入门教程中文版

Apple苹果IOS开发Swift编程语言入门教程中文版

来源:花匠小妙招 时间:2025-04-23 19:35

ios--教你如何轻松学习Swift语法(一)

ios--教你如何轻松学习Swift语法(⼀)⽬前随着公司开发模式的变更,swift也显得越发重要,相对来说,swift语⾔更加简洁,严谨.但对于我来说,感觉swift细节的处理很繁琐,可能是还没适应的缘故吧.基本每写⼀句代码,都要对变量的数据类型进⾏判断,还要进⾏强转等等.好了,废话不多说了,直接把我对swift的语法的⼀些理解奉献给⼤家,希望能对学习swift语法的朋友有所帮助,如有不⾜之处,还请多多包涵,如果有错误之处,欢迎指正Swift 介绍简介Swift 语⾔由苹果公司在 2014 年推出,⽤来撰写 OS X 和 iOS 应⽤程序2014 年,在 Apple WWDC 发布历史2010 年 7 ⽉,苹果开发者⼯具部门总监Chris Lattner开始着⼿ Swift 编程语⾔的设计⼯作⽤⼀年时间,完成基本架构Swift ⼤约历经 4 年的开发期,2014 年 6 ⽉发表克⾥斯·拉特纳何许⼈?LLVM 项⽬的主要发起⼈与作者之⼀Clang 编译器的作者苹果公司『开发者⼯具』部门的主管领导Xcode、Instruments等编译器团队Swift的⼤部分基础架构均由他1⼈完成特点从它的语法中能看到`Objective-C、JavaScript、C#、Python`等语⾔的影⼦语法简单、代码简洁、使⽤⽅便可与Objective-C混合使⽤(相互调⽤)提供了类似 Java 的名字空间(namespace)、泛型(generic)、运算对象重载(operator overloading)为什么设计Swift语⾔让应⽤开发更简单、更快、更稳定确保最终应⽤有着更好的质量Swift初体验Playground是什么?从Xcode6开始出现(Swift开始出现)翻译为:操场/游乐场对于学习Swift基本语法⾮常⽅便所见即所得(快速查看结果)语法特性发⽣改变时,可以快速查看.⼀.Swift最基本的语法变化1.导⼊框架1 OC: #import <UIKit/UIKit.h>2 Swift: import UIKit2.定义标识符OC: int a = 20;Swift: let a : Int = 20 == let a = 20定义标识符格式: let / var 标识符 : 数据类型 = 赋值注意:let声明的是常量,不可以对常量重新赋值Swift中定义标识符,必须声明该标识符是变量(var)还是常量(let)注意:在swift中如果⼀⾏代码中只有⼀条语句,那么语句后⾯的 ;(分号) 可以省略⼀⾏内有多条语句 ; 不可以省略, 不建议⼀⾏写多条语句3.Swift中的打印1 OC: NSLog(@"Hello world”); / NSLog(@"%d", a);2 //Swift中字符串不需要@3 print(a) / print("hello world")⼆.常量&变量1.什么是常量和变量?在Swift中规定:在定义⼀个标识符时,必须明确说明该标识符是常量还是变量使⽤let来定义常量,定义之后,不能进⾏修改使⽤var来定义变量,定义之后,可以进⾏修改2.常量个变量的使⽤注意在使⽤中,建议先使⽤常量,这样更安全,防⽌不⼩⼼修改之前的值如果需要修改时,再把常量修改为变量注意:常量的本质是,指向的内存地址不能修改,但可以找到内存地址对应的对象,修改对象内部的属性1 let view : UIView = UIView()2 view.alpha = 0.53 view.backgroundColor = UIColor.orangeColor()三.类型推导1.什么是类型推导?在Swift中,如果在定义标识符的同时直接对其进⾏赋值,那么系统会⾃动根据赋的值的数据类型,推导出标识符的类型如果定义标识符的同时直接赋值,那么标识符后⾯的数据类型可以省略可以通过option + ⿏标左键来查看标识符的类型1 let n = 3.142 let View = UIView()四.Swift中的基本运算1.swift中在进⾏基本运算时,必须保证两个参与运算的值得数据类型⼀致,否则会报错因为swift中没有隐式转换1 let m = 202 let n = 3.443// let result = m + n 错误写法2.数据类型的转化将Int 转换为 Double Double(m)将Double 转换为 Int Int(n)1 let a : Double = 2.442 let b : CGFloat = 4.553 let result1 = a + Double(b)五.逻辑分⽀1.什么是逻辑分⽀?分⽀就是if / witch / 三⽬运算符等判断语句通过分⽀语句可以控制程序的执⾏流程2.if分⽀语句OC中if的写法 : BOOL --> YES/NO1int a = 202if (a > 0) {3 NSLog(@"a⼤于0")4 }56if (a) {7 NSLog(@"a不等于0")8 }Swift和OC的差异1. if后⾯的()可以省略掉2. swift中没有⾮0(nil)即真 Bool --> true/false1 let a = 202if a > 0 {3 print("a⼤于0")4 } else {5 print("a不⼤于0")6 }73.三⽬运算符swift中的三⽬运算符合OC没什么差别let result = m > n ? m : n4.guard的使⽤4.1 guard是Swift2.0新增的语法4.2 它与if语句⾮常类似,它设计的⽬的是提⾼程序的可读性4.3 guard语句必须带有else语句,它的语法如下:4.3.1当条件表达式为true时候跳过else语句中的内容,执⾏语句组内容4.3.2条件表达式为false时候执⾏else语句中的内容,跳转语句⼀般是return、break、continue和throw1 func online(age : Int , IDCard : Bool , money : Int) {2 guard age >= 18else {3 print("回家叫家长")4return5 }6 guard IDCard == true else {7 print("回家拿⾝份证")8return9 }10 guard money >= 5else {11 print("回家拿钱")12return13 }14 print("留下来上⽹")15 }16 online(19, IDCard: true, money: 4)5.switch分⽀5.1苹果在swift中对swift中对switch进⾏了很⼤的加强5.2 Swift中switch和OC中switch的差异switch中后⾯的()可以省略case结束之后可以不加break,也不会产⽣case穿透补充:如果希望产⽣case穿透,需要在语句结束之后加上fallthrough在swift中switch的case后⾯可以跟上多个条件, 并且多个条件以 , 分割1switch sex {2case0, 1:3 print("正常")4default:5 print("⾮正常⼈")6 }5.3 swift⽀持多种数据类型判断1//浮点型switch判断2switch m {3case3.14:4 print("m是π")5default:6 print("m⾮π")7 }89//字符串switch判断10switch opration {11case"+":12 result = a + b13case"-":14 result = a - b15case"*":16 result = a * b17case"/":18 result = a / b19default:20 print("⾮法操作")21 }22判断区间类型什么是区间?通常我们指的是数字区间:0~10,100~200 swift中的区间常见有两种半开半闭区间:0..<10 表⽰:0~9,不包括10闭区间:0...10 表⽰:0~101 let score = 9223switch score {4case0..<60:5 print("不及格")6case60..<80:7 print("及格")8case80..<90:9 print("良好")10case90...100:11 print("优秀")12default:13 print("不合理分数")14 }15六.循环常见的循环有:for/while/do while1.for循环1.1 OC中的for循环写法1for (int i = 0; i < 10; i++) {23 }1.2 swift中的写法1// 区间遍历 0..<10 0 (9)2for i in0..<10 {3 print(i)4 }56for i in0...9 {7 print(i)8 }910// 如果⼀个标识符不需要使⽤, 那么可以通过 _ 来代替11for _ in0..<10 {12 print("hello world")13 }2.while循环2.1 OC中的写法int a = 20while (a) {}2.2 swift中的写法2.2.1while后⾯的()可以省略2.2.2没有⾮0(nil)即真1 var i = 102while i > 0 {3 print(i)4 i -= 15 }3.do while循环1// 区别: 不再使⽤do while --> repeat while2 var m = 03 repeat {4 print(m)5 m += 16 } while m < 10七.字符串1.字符串的介绍1.1字符串在任何的开发中使⽤都是⾮常频繁的1.2OC和Swift中字符串的区别在OC中字符串类型时NSString,在Swift中字符串类型是String OC中字符串@"",Swift中字符串""1.3使⽤ String 的原因String 是⼀个结构体,性能更⾼NSString 是⼀个 OC 对象,性能略差String ⽀持直接遍历String 提供了 String 和 NSString之间的⽆缝转换2.字符串的定义2.1定义不可变字符串let str = "hello swift"2.2定义可变字符串var strM = "hello world"strM = "hello china"3.获取字符串的长度先获取字符集合,再获取集合的count属性let length = str.characters.count4.遍历字符串for c in str.characters {print(c)}5.字符串的拼接5.1字符串之间的拼接let str1 = "Hello"let str2 = "World"let str3 = str1 + str25.2字符串和其它标识符间的拼接let name = "lgp"let age = 18let height = 1.98let infoStr = "my name is (name), age is (age), height is (height)"5.3字符串格式化⽐如时间:03:04 如果显⽰ 3 : 4 就不好.所以需要格式化let min = 3let second = 4let timeStr = String(format: "%02d:%02d", arguments: [min, second])6.字符串的截取6.1简单的⽅式是将String转成NSString来使⽤在标识符后加:as NSString即可1// 1.⽅式⼀: 将String类型转成NSString类型, 再进⾏截取2// (urlString as NSString) --> NSString3 let header = (urlString as NSString).substringToIndex(3)4 let footer = (urlString as NSString).substringFromIndex(10)5 let range = NSMakeRange(4, 5)6 let middle = (urlString as NSString).substringWithRange(range)6.1Swift中提供了特殊的截取⽅式该⽅式⾮常⿇烦Index创建较为⿇烦1// 2.⽅式⼆: Swift原⽣⽅式进⾏截取2 let headerIndex = urlString.startIndex.advancedBy(3)3 let header1 = urlString.substringToIndex(headerIndex)45 let footerIndex = urlString.endIndex.advancedBy(-3)6 let footer1 = urlString.substringFromIndex(footerIndex)78 let range1 = headerIndex.advancedBy(1)..<footerIndex.advancedBy(-1)9 let middle1 = urlString.substringWithRange(range1)⼋.数组的使⽤1.数组的介绍1.1 数组(Array)是⼀串有序的由相同类型元素构成的集合 1.2 数组中的集合元素是有序的,可以重复出现1.3 Swift中的数组swift数组类型是Array,是⼀个泛型集合2.数组的初始化2.1 定义不可变数组,使⽤let修饰注意:不可变数组要在定义的同时初始化,否则没有意义let array = ["why", "yz"]2.2 定义可变数组,使⽤var修饰注意:数组是泛型集合,必须确定该数组中存放元素的类型 //基本写法var arrayM = Array<String>()//单写法var arrayM = [String]()3.对可变数组的基本操作(增删改查)3.1 添加元素arrayM.append("ljp")3.2 删除元素let removeItem = arrayM.removeAtIndex(1) 返回值为删除的元素arrayM.removeAll()3.3 修改元素arrayM[0] = "why"3.4 查找元素(根据下标获取元素)let item = arrayM[0]4.数组的遍历4.1 遍历下标值1for i in0..<array.count {2 print(array[i])3 }4.2遍历元素for name in array {print(name)}4.3遍历下标值和元素1for (index, name) in array.enumerate() {2 print(index)3 print(name)4 }5.数组的合并相同类型的数组可以相加进⾏合并可变数组和不可变的数组也能合并1 let array1 = ["why", "yz"]2 let array2 = ["lmj", "lnj"]3 let resultArray = array1 + array2九.字典的使⽤1.字典的介绍1.1字典允许按照某个键来访问元素1.2字典是由两部分集合构成的,⼀个是键(key)集合,⼀个是值(value)集合1.3键集合是不能有重复元素的,⽽值集合是可以重复的,键和值是成对出现的1.4Swift中的字典Swift字典类型是Dictionary,也是⼀个泛型集合2.字典的初始化2.1 定义不可变字典,使⽤let修饰注意:不可变字典要在定义的同时初始化,否则没有意义系统会根据[]中存放的是键值对,还是⼀个个元素,来判断该[]是⼀个数组还是字典let dict = ["name" : "why", "age" : 18, "height" : 1.88]2.2 定义可变字典,使⽤var修饰注意:字典是泛型集合,必须制定该数组中存放元素的类型基本写法var dictM = Dictionary<String, NSObject>()简单写法var dictM = [String : NSObject]() // 常见3.对可变字典的基本操作(增删改查)3.1 添加元素dictM.updateValue("why", forKey: "name")3.2 删除元素1 dictM.removeValueForKey("age")3.3 修改元素1//如果原有没有对应的key/value, 那么就添加键值对2// 如果原有已经有对应的key/value, 那么直接修改3 dictM.updateValue("1.77", forKey: "height")4 dictM["name"] = "why"3.4 查找元素(获取元素)1 let item = dictM["name"]4.字典的遍历4.1 遍历字典中所有的key1for key in dict.keys {2 print(key)3 } 4.2 遍历字典中所有的value1for value in dict.values {2 print(value)3 }4.3 遍历字典中所有的key / value1for (key, value) in dict {2 print(key)3 print(value)4 }5.字典的合并相同类型的字典也不可以相加进⾏合并可以把其中⼀个字典改为可变的,遍历不可变得字典,把元素⼀个⼀个的添加到另⼀个不可变字典中1 let dict1 = ["name" : "why", "age" : 18]2 var dict2 = ["height" : 1.88, "phoneNum" : "+86 110"]34for (key, value) in dict1 {5 dict2[key] = value6 }7⼗.元组的使⽤1.元组的介绍1.1元组是Swift中特有的,OC中并没有相关类型1.2它是什么呢?1.2.1 它是⼀种数据结构,在数学中应⽤⼴泛1.2.2 类似于数组或者字典1.2.3 可以⽤于定义⼀组数据1.2.4 组成元组类型的数据可以称为“元素”2.为什么使⽤元组?如果字典或数组保存多种数据类型,那么从字典会数组取出来的数据类型是NSObject,我们使⽤的时候很不⽅便,要先转换为真实类型元组保存多种数据类型,取出来就是该数据的真实类型,不需要转换就能直接使⽤3.元组的定义1 let infoTuple = ("why", 18, 1.88, "+86 110")2// 使⽤元组描述⼀个⼈的信息3 ("1001", "张三", 30, 90)4// 给元素加上元素名称,之后可以通过元素名称访问元素5 (id:"1001", name:"张三", english_score:30, chinese_score:90)。

相关知识

ios基于什么系开发的 ios基于什么内核开发
【移动开发】详细介绍
智能移动应用开发完整指南
移动(应用)开发详解
移动应用开发定位
探索移动应用开发之旅:从概念到实现
移动应用开发和安卓移动应用开发区别
如何通过PJLink协议远程控制Panasonic摄影机的电源开关以及输入源切换?请详细说明命令格式和操作步骤。
移动app应用开发工具有哪些?手机软件开发方式
移动应用开发技术有哪些? – PingCode

网址: Apple苹果IOS开发Swift编程语言入门教程中文版 https://www.huajiangbk.com/newsview1786974.html

所属分类:花卉
上一篇: 语言编程swift入门视频教程1
下一篇: 移动开发者最爱的Swift语言自

推荐分享