swift的学习笔记
2015-09-05 23:37
351 查看
数组,字典,集合
集合的交集、并集、减集,异或操作
枚举的Integer的递增属性:
声明类型:
注意的是,swift里的turple, array, dictionary都是按值传递的,而function, closure才是按地址传递
func的参数默认是常量参数,要加
也就是说,默认的参数是以
另外,默认不管参数是什么类型的,都是传值的,要想实现传地址的传参,那么要使用
在调用的时候要加个
数组的遍历,同时获取index,和key
引入Foundation使用更多字符串的功能
聚合运算符
生成一个唯一的ID,uuid
如何对输入框实现点击空白处和return键收起键盘
首先继承"UITextFieldDelegate"类,
再绑定view,
然后加上下面俩方法:
class和struct的区别是,struct是放在stack里,class是放在heap,所以struct是值传递,整个复制,class是指针传递
自动给view添加constraints
首先得保证你的项目开启了AutoLayout
在storyboard里选中view,然后点击在视图底部第3个按钮"resolve auto layout issues"即可
在ViewController之间传递值
1、为View绑定一个Controller:新建一个swift文件作为controller,然后copy原有的controller原始模板代码过来,然后在View的属性面板选择好它的Class
2、在传递数值的Controller,重写它的这个方法:
定义好segue的标识符,并在代码上用
取segue的目标:
修改结构体或者枚举的属性,使用mutating
而类class是不用mutating
var arr = [] var dict = {1:"a"} var B:Set<Int> = [] var C = Set<Int>([])
集合的交集、并集、减集,异或操作
var a = Set<Int>([1,2,3]) var b = Set<Int>([2,3,4]) a.intersect(b) // -> {2,3} a.union(b) // -> {1,2,3,4} a.subtract(b) // -> {1} b.exclusiveOr(b) // -> {1,4}
枚举的Integer的递增属性:
enum test:Int{ case a=1, b, c, d, e, f, g } let c:test = .c c.rawValue // -> 3
声明类型:
enum test { case a(Int, String) // ->声明了一个turple case b(String) // -> 声明了一个String } let a = test.a(100, "ok") let b:test = .b("soso")
注意的是,swift里的turple, array, dictionary都是按值传递的,而function, closure才是按地址传递
func的参数默认是常量参数,要加
var在前面才变成变量参数,也就是说可以在func内更改参数值
func test(a:String, var b :Int){ b = a.toInt()! }
也就是说,默认的参数是以
let来声明的。
另外,默认不管参数是什么类型的,都是传值的,要想实现传地址的传参,那么要使用
inout
func test(inout a:String, inout b :Int){ a = "100" b = 200 }
在调用的时候要加个
&在前面调用:
var a = "300" var b = 300 test(&a, &b)
数组的遍历,同时获取index,和key
var arr = [1,23,3] for (index, item) in enumerate(arr) { println(index) println(item) }
引入Foundation使用更多字符串的功能
import Foundation var str = "Hello, kobe" str.capitalizedString str.uppercaseString str.lowercaseString // 等于.trim() str.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()) //等于.trimBy([" ","!",","]) str.stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString: " !,")) // 等于js的split(" ") str.componentsSeparatedByString(" ") // 等于js的split(" "),split("!"),split(",") str.componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: " !,")) // join方法 var str2 = "-" str2.join(["2005","08","11"])
聚合运算符
a ?? b // 等于 nil != a ? a! : b
生成一个唯一的ID,uuid
func getUUID() -> String { let uuid = NSUUID().UUIDString return uuid }
如何对输入框实现点击空白处和return键收起键盘
首先继承"UITextFieldDelegate"类,
再绑定view,
inputItem.delegate = self
然后加上下面俩方法:
func textFieldShouldReturn(textField: UITextField) -> Bool { textField.resignFirstResponder() return true } override func touchesEnded(touches: NSSet, withEvent event:UIEvent){ inputItem.resignFirstResponder() }
class和struct的区别是,struct是放在stack里,class是放在heap,所以struct是值传递,整个复制,class是指针传递
自动给view添加constraints
首先得保证你的项目开启了AutoLayout
在storyboard里选中view,然后点击在视图底部第3个按钮"resolve auto layout issues"即可
在ViewController之间传递值
1、为View绑定一个Controller:新建一个swift文件作为controller,然后copy原有的controller原始模板代码过来,然后在View的属性面板选择好它的Class
2、在传递数值的Controller,重写它的这个方法:
override func prepareForSegue
定义好segue的标识符,并在代码上用
segue.identifier来标识
取segue的目标:
var vc = segue.destinationViewController as TargetViewController,在vc变量里给属性赋值就等于传递数值了
修改结构体或者枚举的属性,使用mutating
struct Point{ var x = 0.0, y = 0.0 mutating func moveByX(deltaX:Double, y deltaY:Double){ x+= deltaX y+= deltaY } }
而类class是不用mutating
class pp { var x = 0.0 func change(xx: Double) { x = x + xx } }
相关文章推荐
- Apple Swift学习教程
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift中定义二维数组的方法及遍历方法示例
- 简单分析Swift语言的一些基本特征
- Swift与C语言指针结合使用实例
- Swift心得笔记之控制流
- 用Swift构建一个简单的iOS邮件应用的方法
- 苹果公司推出的新编程语言Swift简介和入门教程
- Swift中的指针操作和使用详细介绍
- Swift中使用正则表达式的一些方法
- Swift心得笔记之运算符
- Swift中使用可选类型完美解决占位问题
- Swift学习笔记之构造器重载
- Swift中的Access Control权限控制介绍
- Swift类型创建之自定义一个类型详解
- Swift教程之控制流详解
- Swift中初始化方法的顺序介绍
- Swift里的值类型与引用类型区别和使用
- Swift调用Objective-C编写的API实例