- swift的入口在appdelegate UIApplicationMain
- swift的文件后缀是swift
- OC里类的开始和结束用@interface @end swift是{}
- OC是以分号结束 swift无分号
- 创建视图 let view = UIView();
- 添加视图不用self.view 可以直接用view.addsubView(v)
- 按钮的方法点击事件用方法名" "
- 用let 来定义常量 用var来定义变量
- 自动推导 -- 系统根据等号右边的值自动计算出常量还是变量类型
- 查看类型 option + 点击
如果想让他变成double var z: Double = 10
- swift 不能隐式转换 需要强转 Double(x)
- 在定义常量/变量的类型后边加一个? 就是一个可选项 var num: Int? num! 就是解包如果没有值就会崩溃可以进行判断
- num ?? 就是判断有没有值, 如果可选值为nil 则选去后边的值 , 有值则取可选值的
- if后面的{} 不能省略 ()可以省略 没有非0即真 只能写true false if true{}
- 三目运算符 num == 5 ? print("num = 5") : print("num != 5")
- if let 就是用于对可选项的一个判断 创建了一个新的变量 if let Ourl = url{}
- if let Ourl = url where Ourl.host == "www.baidu.com"{ let request = NSURLRequest (URL:Ourl)} host 就是 http 后面的内容
- if let Ono = no, Oname = name {};
- guard let Ono = no, Oname = name else { 在里边访问Ono } 在这里可以访问
guard 不满足其中一条条件就可以访问里边的内容
- switch swift中可以使字符串也可以是其他类型 oc只能是整形, 后面没有可以运行的代码要写上break
- for i in 0...10{print(i)} 运行11次 for i in 0..<10{} 运行10次
- String类型 父类是结构体 双引号 NSString 父类是NSObject
NSString能够与String 很好的转换
- 遍历字符串
for s in str.characters{print(s)}
字符串长度print(str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))
字节byte 一个字节占3个字节
print(str.utf8.cout)
字符串拼接
print(str + "lala")
print("\(str),lala")
字符串格式化
let time = String(format:"%02d:%02d:%02d", arguments:[h,m,s])
- 字符串的截取
第一种方式
String转换成NSString
let subStr = (str as NSString).substringWithRange(NSMakeRange(2,2))
第二种方式 String方式
let startIndex = "哈哈".endIndex // 占位 写"你若"也行随意只要是两个字
let endIndex = "哈哈哈哈".endIndex
let sub = str.substringWithRange(startIndex..<endIndex)
- let array = ["1", "2", "3"] print(array[0])
for str in array{}
for (index,value) in array.enumerate(){ print("索引是 \(index), 值是\(value)") }
array.append("4") let array不能用这个方法 var才能改变
添加不同的数据的数组初始化一下
var diff = [NSObject]()
diff.append("123") diff.append(20)
数组初始化 var 数组名 = [类型]()
添加结构体要转换成NSValue
NSValue(CGRect:CGRectZero)
数组删除
diff.removeAtIndex(1) diff.removeAll() diff.removeAll(keepCapacity:Bool) 是否保留开辟的内存空间 Bool是true 和 false
- let dic = ["key":"value"]
添加新值 dic["name"] = "itcast"
var dic2 = [String : NSObject]() 这个字典是经常用的
遍历 for dictionary in dic2{ print(dictionary) }
for (key, value) in dic2{}
- 数组合并 diff = diff + strs 要注意范围 缩小范围不能添加
字典合并 for (key,value) in dict {dic[key] = value} 需要看清范围
key值一样的时候就由新值替换旧值
- 函数 func sum(num1: Int, num2: Int) -> Int{}
func demo1() -> Void
func demo2() -> ()
func demo()
函数的第一个参数名可以省略 如果需要显示则可以在第一个参数名前额外加一个名字 func sum(num num1: Int, num2: Int) -> Int{}
- 闭包
let closure = { print("闭包是什么") }
- dispatch_async(dis_queue, {--}) dispatch_async(dis_queue){---} dispatch_async(dis_queue){}
- 闭包会对里边的变量进行一个强引用
- deinit 类似于oc 的delloc
- 循环引用 可以断掉控制器对类的强引用
[weak self] 里边用 self?.view
[unowned self] self?.view
weak var weakSelf = self weakSelf.view
27.swift基础
最新推荐文章于 2024-04-20 04:54:20 发布