Swift
发烧的小龙虾
BUAAer
展开
-
Swift:属性观察者willSet和oldSet
import Foundationclass Stepcounter { // 定义一个类,记录走的步数 var step: Int = 10 { // 注意是这里初始化的是10 willSet { // 属性观察者willSet是定义在变量step后面的大括号里面的,如果省略参数,默认参数为newValue,这里存的就是设置的新变量的值 pr...原创 2018-10-28 11:25:38 · 296 阅读 · 0 评论 -
Swfit:数组、字典、集合
1. 数组import UIKitvar arr = [Int]()for i in 0 ..< 10 { arr.append(i)}arr[2 ... 5]arr.contains(11) // 返回一个布尔值arr.index(of: 1) // 返回1对应的下标for (index, value) in arr.enumerated() { p...原创 2018-11-11 21:40:04 · 156 阅读 · 0 评论 -
Swfit:函数专题
1. 返回为空的写法import UIKitfunc printHello() -> () { // 返回为空,可以省略,也可以用()或Void print("Hello")}func printHello() { // 返回为空,可以省略,也可以用()或Void print("Hello")}func printHello() -> Void {...原创 2018-11-12 13:16:33 · 160 阅读 · 0 评论 -
Swift:闭包专题
1. 基本用法import Foundationvar arr = [3, 1, 4, 5, 2]arr.sort(by: { // 一定要加by (a: Int, b: Int) -> Bool in return a > b})arr.sort(by:{ a, b in return a > b})arr.sort(by:{...原创 2018-11-12 16:01:25 · 312 阅读 · 0 评论 -
Swift:继承专题
1. 多态性import UIKitclass Avatar { // 角色 var name: String var life = 100 { didSet { // 这里一定只能用didSet,在改变之后再次改变life的值,如果用willSet只能在内部改变,出去之后还是原样 if life > 100 { ...原创 2018-11-14 11:48:43 · 331 阅读 · 0 评论 -
Swfit:枚举专题
1. 基本语法以及原始值import UIKitenum Month: Int { // Month这个枚举型和整数关联起来,等号后边的值就是枚举型的rawValue case January = 1 // 其实就写这一样就够了,下面会自动变成2...12 case February = 2 case March = 3 case April = 4 ...原创 2018-11-12 17:23:03 · 161 阅读 · 0 评论 -
Swift:文档注释
1. 基本知识import UIKitclass A { var x: Int /** 这是summary:这是一个函数用来输出这是一个函数用来输出这是一个函数用来输出这是一个函数用来输出这是一个函数用来输出这是一个函数用来输出这是一个函数用来输出这是一个函数用来输出这是一个函数用来输出这是一个函数用来输出这是一个函数用来输出这是一个函数用来输出这是一个函数...原创 2018-11-16 10:58:39 · 553 阅读 · 0 评论 -
Swift:下标专题
1. 下标的get和set方法import Foundationstruct Vector3 { var x: Double = 0.0 var y: Double = 0.0 var z: Double = 0.0 subscript(index: Int) -> Double? { // index是方括号中的内容 ...原创 2018-11-16 11:58:13 · 154 阅读 · 0 评论 -
Swift:运算符重载专题
1. 普通运算符和比较运算符import Foundationstruct Vector3 { var x: Double var y: Double var z: Double}var va = Vector3(x: 1, y: 2, z: 3)var vb = Vector3(x: 4, y: 5, z: 6)func + (left: Vecto...原创 2018-11-17 17:20:40 · 433 阅读 · 0 评论 -
Swift:扩展专题
1. 扩展初体验 Ps:只能扩展五种东西 1. 方法 2. 计算型属性 3. 便利的构造函数 4. 嵌套的枚举类型 5. 下标 不允许扩展成员变量和指定的构造函数import Foundationstruct Point { var x: Int var y: Int}struct Size { var width: Int ...原创 2018-11-17 19:35:59 · 188 阅读 · 0 评论 -
Swift:泛型专题
1. 泛型函数import Foundationfunc swapTwoThings<T> (a: inout T, b: inout T) { (a, b) = (b, a)}var a = 1var b = 2swapTwoThings(a: &a, b: &b)abvar aa = "I love you"var bb = "...原创 2018-11-17 19:57:24 · 145 阅读 · 0 评论 -
Swift:协议专题
1. 协议初体验强调的几点:(1)协议里只能用var并且一定要注明是只读还是可读可写(2)协议可以规定只被类继承,不能规定只被结构体继承(3)即使协议中是只读的,但是我继承的类或者结构体仍然可以用var来实现,相当于在只读的基础上,多加了一个可写功能,但是并不破坏原有可读的属性,所以是允许的。反之不行,如果原来在协议里就是定义可读可写,则在继承的类或者结构体中不能用let去定义,只...原创 2018-11-17 20:44:03 · 845 阅读 · 0 评论 -
Swift:内存管理专题
1. deinit关键字在对象释放前调用,书写形式为deinit { }2. 引用计数先看一个原创 2018-11-26 11:04:50 · 422 阅读 · 0 评论 -
Swift:类型转换专题
1. is关键字A is B 返回一个布尔类型,表示A是否是B这种类型//: Playground - noun: a place where people can playimport UIKitclass MediaItem{ var name: String init(name: String){ self.name = name }...原创 2018-11-26 15:03:54 · 408 阅读 · 0 评论 -
Swift中关于字符串的一些问题
知识点代码Playground如下import UIKitvar str = "Hello, playground!"let startIndex = str.startIndexstr[startIndex]str[str.index(startIndex, offsetBy: 7)]str[str.index(after: startIndex)]let index =...原创 2018-11-11 19:17:05 · 244 阅读 · 0 评论 -
Swift语法中的奇淫技巧和盲点(持续更新)
1. case let where if 等一些关键字之间的语法糖import UIKitlet age = 19// 判断age在0~19之间,并且还要大于18if case 0 ..< 20 = age, age > 18{ // if case表示用逗号表示同时满足 print("aaa")}// 解包,x为第一项的值,并且x还要在2~5之间le...原创 2018-11-11 17:13:20 · 1115 阅读 · 0 评论 -
Swift:下标
下标选项下标可以接收任意数量的输入形式参数,并且这些输入形式参数可以是任意类型。下标也可以返回任意类型。下标可以使用变量形式参数和可变形式参数,但是不能使用输入输出形式参数或提供默认形式参数值。类或结构体可以根据自身需要提供多个下标实现,合适被使用的下标会基于值类型或者使用下标时下标方括号里包含的值来推断。这个对多下标的定义就是所谓的下标重载。通常来讲下标接收一个形式参数,但只要你的类...转载 2018-10-28 14:38:41 · 291 阅读 · 0 评论 -
Swift:让人头疼的函数传参
函数实际参数标签和形式参数名每一个函数的形式参数都包含实际参数标签和形式参数名。实际参数标签用在调用函数的时候;在调用函数的时候每一个实际参数前边都要写实际参数标签。形式参数名用在函数的实现当中。默认情况下,形式参数使用它们的形式参数名作为实际参数标签。 1 2 3 4 5 func someFunction(firstPa...原创 2018-10-25 20:53:10 · 754 阅读 · 0 评论 -
Swift:函数传数组的两种方式
import Foundationfunc ave(num: Array<Double>) -> Double { var sum: Double = 0 for x in num{ sum += x } return sum / Double(num.count)}print(ave(num: [1, 2, 5]))...原创 2018-10-25 21:23:34 · 1549 阅读 · 0 评论 -
Swift: 函数传引用(指针)的用法
func swap(_ a: inout Int, _ b: inout Int) { var t = 0 t = a a = b b = t}var a = 5var b = 6swap(&a, &b)print(a, b)原创 2018-10-25 21:40:15 · 1571 阅读 · 0 评论 -
Swift 4:UIKit之UILabel(持续更新)
import UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib....原创 2018-10-29 10:57:37 · 512 阅读 · 0 评论 -
Swift 4:UIKit之UIButton(持续更新)
按钮有四种状态正常(默认状态)突出显示(高亮状态)点击按钮不放已禁用(使能状态)就是是否可用状态 - >禁用的状态才会显现Selected(选中状态)通过selected属性设置 import UIKitclass ViewController: UIViewController { override func viewDidLoad() { ...原创 2018-10-29 11:52:44 · 567 阅读 · 0 评论 -
Swift:闭包
闭包表达式 import Foundationfunc backward(_ a: Int, _ b: Int) -> Bool { return a > b}var lst = [5, 3, -1, 9]print(lst.sorted(by: backward))import Foundationvar lst = [5, 3, -1, 9]pri...原创 2018-10-26 15:42:15 · 142 阅读 · 0 评论 -
Swift:我的第一个Demo(UILabel和UIButton)
完成的逻辑,按下按钮从hello变成感谢点击,松手还原文件名:AppDelegate.swiftimport UIKit@UIApplicationMainclass AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ applic...原创 2018-10-29 18:28:56 · 512 阅读 · 0 评论 -
Swfit:UIKit之UIImageView
参考博客:https://www.jianshu.com/p/018a929e64df核心代码let imageView = UIImageView(image: UIImage(named: "hahaha.jpeg")) // 这里的hahaha.jpeg放在图像显示控件中 imageView.frame = UIScreen.main.bounds ...原创 2018-10-30 10:52:31 · 143 阅读 · 0 评论 -
RxSwift:Driver与UI控件初体验
输入电话号码的区号和八位数主体号码,下面的Label实时更新最新的输入,如果区号为3位数,点击按钮,按钮名字变成“变!”Ps:目前还不会,同时满足上面两位,下面三位的的约束,以后会更新的文件名:ViewController.swift//// ViewController.swift// RxSwiftTest//// Created by travey on 2018...原创 2018-11-06 10:08:11 · 1472 阅读 · 0 评论 -
RxSwift:rx.controllEvent初体验
输入用户名按回车,光标自动跳到密码栏,输入完密码,键盘消失//// ViewController.swift// RxSwiftTest//// Created by travey on 2018/11/5.// Copyright © 2018年 ZhouShijie. All rights reserved.//import UIKitimport RxSwif...原创 2018-11-06 10:26:15 · 986 阅读 · 0 评论 -
Swift:我的第三个Demo
这里Demo工作量是我目前做的做大的,相应的知识点有1 页面UI布局2 delegate委托模式的实现3 Alamofire网络请求4 JSON初体验5 自定义TableViewCell6 NavigationViewController初体验7 Kingfisher加载图片的使用8 TableView的界面自定义,如何刷新界面 代码如下文件名:Appd...原创 2018-11-09 14:59:43 · 262 阅读 · 0 评论 -
RxSwift:RxSwift初体验
将TextField里面输入的内容和label绑定起来文件名 ViewController.swift//// ViewController.swift// RxSwiftTest//// Created by travey on 2018/11/5.// Copyright © 2018年 ZhouShijie. All rights reserved.//im...原创 2018-11-05 18:33:32 · 206 阅读 · 0 评论 -
Swift:错误处理专题
1. assert和precondition//: Playground - noun: a place where people can playimport UIKit// 下面的三个用于调试,在真机上不起作用assert(1>0) // 必须满足括号里面的逻辑,不然停止assert(1>0, "Error") // 必须满足括号里面的逻辑,不然停止并报错ass...原创 2018-11-25 16:20:33 · 194 阅读 · 0 评论