一周初识swift(一)

导入框架

import UIKit

定义标识符 常量用let 变量用var
建议先定义成常量,如果需要修改再改为变量(更加安全)

let a :Int = 20
var b :Double = 1.4

语句结束如果只有一行 不用加分号,多和那个区别可以;分号分割
打印内容

print(a)

创建一个常量对象 UIView()相当于 [[UIview alloc]init]

let view :UIView = UIView()
view.backgroundColor = UIColor .redColor()
view.alpha = 1
view.hidden = false
let button = UIButton()

将整形转为浮点型

let d = 20
let f = 23.3
let fd = Double(d)
let result = f + fd
  • 逻辑分支
    swift中if的写法
    if后面的()可以省略
    判断句不再有非0/nil即真,判断句必须有明确的真假(Bool–>true/false)
if dd > 10{
    print("dd大")
}else{
    print("dd小")
}

let score = 90
if score > 100{
    print("分数错了")
}else if score > 80{
    print("优秀")
}
  • 三目运算符
let mm = 8
let n = 9
let result = mm > n ? mm:n

guard 当条件为真true时,跳过if中的语句,直接执行语句组中的语句

let age = 20;

func online (age :Int){

    guard age > 18 else{
        print("回家找妈妈")
        return
    }

    print("允许上网",age)
}
online(age)
  • switch语句
    case语句 break也可以省略 系统会默认加上
let sex = 2
switch sex{
case 0,2 :  //此处可以添加多个条件
    print("男的")
case 1:
    print("女的")
default :
    print("其他")
}
  • swift中switch中的特殊用法
    1.switch可以判断浮点型
    2.可以判断区间
let aaa = 7.0
switch aaa
{
case  3.14 :
    print("pai")

case 4..<5:  //开区间
    print("3到4之间的小数")
case 6...7:    //闭区间
    print("6到7")
default :
    print("其他")
 }
  • 逻辑语句—— for循环
for i in 0 ..< 10 {
    print(i)

}
for var d in 0..<10{
    print(d)
}
for  var dd in 0...5{
    print(dd)
}
  //在swift中如果一个标识符不需要使用,可以使用_代替
for _ in 4...8{

    print()
}

swift中的dowhile循环要写成repeat while

var a = 10
repeat  {
    a -= 1
}while a > 0
  • swift中的字符串
let str = "hello world"

遍历字符串

for c in str.characters{
    print(c)
}

字符串的拼接

let str1 = "hello"
let str2 = "world"
let str3 = str1 + str2

字符串和其他标识符的拼接

let name = "jack"
let age = 18
let height = 1.87
//用反斜杠+()拼接  记住整段字符串在""let info = "my name is \(name) , my age is  \(age) , my height is  \(height)"

拼接字符串时,字符串的格式化

let min = 8
let hour = 2
let timeStr = String(format: "%02d:%02d", hour,min)

var f = 123.32342342
var ss :String = String(format: "%.2f", f)

字符串的截取


let urlString = "www.520vistadk.com"
let header = (urlString as NSString).substringToIndex(3)
//打印 www
let middle = (urlString as NSString).substringWithRange(NSRange(location: 4,length: 3))
//打印 520
let footer = (urlString as NSString).substringFromIndex(15)
//打印 com
  • swift中的数组
    定义不可变数组
let array = ["aaa","bbb","ccc"]

定义可变数组

var varray = Array<String>()
var varrayM = [String]()

对可变数组的基本操作

1.1添加元素
varrayM.append("aaa")
varrayM.append("bbbb")
varrayM.append("ccccc")
//["aaa", "bbbb", "ccccc"]
1.2删除元素
varrayM.removeAtIndex(2)
varrayM
//["aaa", "bbbb"]
1.3修改元素
varrayM[1] = "eeee"
varrayM
//["aaa", "eeee"]
1.4取出元素
varrayM[0]
//"aaa"

2.数组的遍历
两种方式

 方式一
let array = ["aaa","bbb","ccc","ddd","eee"]
 for i in 0..<array.count{
    print(array[i])
 }
 方式二
for strS in array{
    print(strS)
 }

3.数组的合并
//注意:相同类型的数组才可以进行合并,不同类型不能相加合并,而且注意合并并不能去重

 let array1 = ["aaa","vvv","ddd"]
 let array2 = ["ddd","ccc","ggg"]
 let array3 = array1 + array2
 //打印["aaa", "vvv", "ddd", "ddd", "ccc", "ggg"]
  • 字典
    1.定义字典
    1>定义不可变字典:let修饰
    系统会自动判断后面的[]存放的是键值对,还是一个个的元素
    2>定义可变字典:var修饰
 var vDict1 = Dictionary<String,NSObject>()
 var vDict2 = [String:NSObject]()
 //一般用anyObject更合适,指定类型  NSobject一般用于创建对象
 var vDict3 = [String:AnyObject]()

2.对可变字典的基本操作

var vDict = [String:AnyObject]()
 //2.1添加元素
 vDict["name"] = "jack"
 vDict["height"] = 1.86
 vDict["age"] = 18
 vDict["weight"] = 70
 vDict

 //2.2删除元素
 vDict.removeValueForKey("name")
 vDict
 //2.3修改元素
 vDict["name"] = "rose"
 vDict
 //2.4获取某一个元素
 vDict["age"]

3.遍历字典

//3.1遍历字典中的key
 for key in vDict.keys{
    print(key)
 }
//3.2遍历字典中所有的value
 for value in vDict.values{
    print(value)
 }
//3.3遍历所有键值对
 for (key,value) in vDict{
    print(key,value)
 }

4.合并字典
//即使类型一致,也不能相加合并。同数组不同

let dictD = ["name":"vista","age":"18","height":"1.85"]
 //注意 只能往可变字典中合并
 var dictM = ["name":"haha","phone":"121"]

 for (key,value) in dictD{
    dictM[key] = value
 }
 dictM
 //输出
 //["height": "1.85", "age": "18", "phone": "121", "name": "vista"]
  • 元组
    使用元组
 //元祖的基本写法
 let info = ("jack",18,1.88)
 info.0
 info.1


 //可以给每一个元素起别名
 //注意此处和字典的区别,前面的并不是key(不是字符串""),而是一个别名
 let inf = (name:"jack",age:18,height:1.87)
 inf.age
 inf.height
 inf.name
 inf.1

 //元祖中元素的别名,就是元祖的名称
 let (name,age,height) = ("rose",16,1.76)
 name  //输出 "rose"
 age  //输出 16
 height //输出 1.76
  • 可选类型
    你想给一个类型赋值为nil,但是nil也是一个特殊的类型, 直接赋值会类型不匹配报错
    swift有规定:对象中的任何属性在创建对象时,都必须有明确的初始化值

 //1定义可选类型
 //方式一:常规方式(不常用)
 var  name : Optional<String> = nil
 //方式二: 语法糖(常用)
 var name1 : String? = nil

 //2给可选类型赋值
 name = "jack"

 //3取出可选类型中的值
 //注意L直接取
 print(name)

 //取可选类型 要+ !:强制解包  但是千万注意:强制解包是非常危险的操作,如果可选类型为nil,强制解包系统会崩溃   建议:在强制解包前,先对可选类型进行判断,判断是否为nil

 if name != nil{
    print(name!)
 }

 //4可选绑定

 //写法一:不常用
 //注意  此处系统会自动判断name是否有值,如果为空,不执行{},如果name有值,系统会自动将name解包,并且将解包后的结果赋值给tempName
 if let tempName = name{
    print(tempName)
 }

 //写法二:常用
 if let name = name{
    print(name)
 }

可选类型的用法

//通过一个字符串创建爱你NSURL对象
 //此处注意,直接建立一个字符串也是可能为空的,只要www.vsitadk潇洒.com 中间传入了中文,不识别 url就会为nil
 let url :NSURL? = NSURL(string: "www.vsitadk.com")

 //根据url创建爱你NSURLRequest对象
 //方式一 不常用
 if url != nil{
    let request = NSURLRequest(URL: url!)
 }

 //方式二 常用
 if let url =url{
   let request = NSURLRequest(URL: url)//此处系统会自动判断,不为空就解包
 }
  • 函数
    swift中的函数相当于OC中的方法
    函数的格式如下
func 函数名(参数列表)-> 返回值类型{
        代码块
        return 返回值
}

//func  是关键字,参数列表之间可以用逗号分隔,也可以没有参数
//使用箭头“->”指向返回值类型
//如果函数没有返回值,返回值为void,并且“->”返回值类型 部分可以省略
 //1.没有参数没有返回值的函数
 func nomal() -> Void{
    print("nomal")
 }
nomal()
 //也可以简化
 func nomal1(){
    print("简化了nomal")
 }
 nomal1()

 //2.没有参数有返回值的函数
 func  readMsg() ->String{
   return "get"
 }

 readMsg()

 //3.有参数没有返回值的函数
 func getMsg(msg:String) {
    print("收到了\(msg)")

 }
 getMsg("message")
 //打印 "收到了message\n"
 //4.有参数有返回值的函数
 func sum(num1 : Int, num2 : Int) -> Int{

    return num1 + num2
 }
 let result = sum(1, num2: 3)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值