swift小结02-基础篇
}in 用于区分闭包定义和代码实现let coluse = { (a:String)->Void in
print("xxxxx\(a)")
}
//定义无参数的闭包
let coluse1 = {
}
let coluse2 = {()->Void in
// 当闭包是最后一个参数的时候, 将闭包放在参数整个()外面
UIView.animateWithDuration(0, animations: { () -> Void in
print("aa")
let cal = {(result:String)->Void in
print("闭包的参数是\(result)")
}
//调用方法
loadDate(cal)
//2.创建方法,闭包callback:(String)->Void作为方法的参数
func loadDate(callback:(String)->Void) ->Void{
//异步
dispatch_async(dispatch_get_global_queue(0, 0)) { () -> Void in
//睡2秒
NSThread.sleepForTimeInterval(2)
//回到主线程
dispatch_async(dispatch_get_main_queue(), { () -> Void in
//设置回调的参数
let callString = "什么鬼"
//3.调用回调
callback(callString)
})
}
- ( )里面是空,表示调用类的默认构造函数 = [[类名 alloc] init];
- 实例化一个类:
var 变量名 = 类名()
2.访问类的属性和调用类的方法都是通过.来进行的OC中的属性:
@property(noatomic, copy) NSString *name;1.在.h声明 getter 和 setter 方法2.在.m实现 getter 和 setter 方法3.在.m生成 _成员变量
Swift中属性分为:存储型属性和计算型属性存储型属性: 存储数据
属性监视器: 当存储型属性发生改变的时候,通知我们属性发生了改变,可用于监视值的改变willSet: 在属性将要发生改变时调用didSet: 在属性已经发生改变时调用(常用)
计算型属性: 不存储任何数据,只生成 getter 和 setter,当只提供 get 方法时,称之为只读计算属性.必须要有 get 方法
计算型属性相当于OC中的@property生成的getter和setter方法,只不过setter方法没有给_成员变量赋值

- 便利构造函数: 它是辅助性的构造函数.方便创建对象
- 默认情况下,所有的构造函数都是指定构造函数
Designated convenience关键字修饰的构造方法就是便利构造函数- 便利构造函数可以返回
nil - 需要调用本类的一个指定构造函数
- 1.不需要func关键字.名称是固定的,都叫 init
- 2.如果子类没有实现构造函数.会继承父类的构造函数
- 3.子类构造函数需要调用父类构造函数
- 4.需要先初始化子类属性,在调用父类构造函数
- 5.子类一旦实现了构造函数.就不会继承父类的构造函数
// 构造函数,先给自己的属性赋值,在调用父类的构造函数
override init() {
self.name = "liudehua"
super.init()
}
// 重载: 函数名称一样,但是参数不一样
init(name: String) {
// 先给自己的属性赋值
self.name = name
super.init()
convenience init?(stu_name:String,stu_grade:Float){
if stu_grade < 0 || stu_grade > 100{
print("非人类分数")
return nil
}
//需要调用自身的指定构造函数或便利构造函数,不能调用父类的
self.init(name:stu_name,grade:stu_grade)
}
convenience init?(s_name:String,s_grade:Float){
//调用自身的便利构造函数
self.init(stu_name:s_name,stu_grade:s_grade)
lazy var person: Person = Person(name: "小强", age: 20)
lazy var arr: NSArray = NSArray()
// 懒加载方式2(完整写法)
lazy var person2: Person = { () -> Person in
let p = Person(name: "强强", age: 22)
return p
}()
//(默认写法)除了创建对象,还可以做一些初始化操作
lazy var person2: Person = {
let p = Person(name: "强强", age: 22)
// 此处来1000行代码
let p1 = NSArray()
return p
swift小结02-基础篇的更多相关文章
- iOS开发swift语法0基础篇—————(swift技术交流群:361513739)
iOS开发之swift语法0基础篇:点击打开链接 swift技术交流QQ群361513739
- swift小结01--基础篇
2014年推出的swift目前已来到了3.0,日趋稳定,这个是之前学习整理的关于swift的资料,分享给大家,希望有用,写的不足的地方还请见谅. 语言背景: Swift 语言由苹果公司 ...
- Swift 学习- 02 -- 基础部分2
class NamedShape{ var numberOfSides: Int = 0 var name: String init(name: String) { self.name = name ...
- Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式
概要 本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable.之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程.关于线程 ...
- 前端开发工程师 - 02.JavaScript程序设计 - 第1章.基础篇
第1章--基础篇 JS介绍 html 网页的内容:css 网页的样式:javascript 网页的行为 i.e. hello world <!DOCTYPE html> <html& ...
- WebBug靶场基础篇 — 02
本篇以第一人称记录这个关卡的第 1-5 关. 由于我记录的过程有点偏向于思考,所以截图截的多 = =!所以文章有点长... 下午一觉醒来,已经 4 点多了,然后开电脑,在虚拟机里,铺了铺靶场,但是毕竟 ...
- 【matlab 基础篇 02】基础知识一键扫盲,看完即可无障碍编程(超详细+图文并茂)
博主快速入门matlab,系统地整理一遍,如何你和我一样是一个新手,那么此文很适合你: 本人能力有限,文中难免有错误和纰漏之处,请大佬们不吝赐教 创作不易,如果本文帮到了您: 请帮忙点个赞
- 【转】Shell编程基础篇-上
[转]Shell编程基础篇-上 1.1 前言 1.1.1 为什么学Shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应 ...
- 我叫Mongo,收了「查询基础篇」,值得你拥有
这是mongo第二篇「查询基础篇」,后续会连续更新6篇 mongodb的文章总结上会有一系列的文章,顺序是先学会怎么用,在学会怎么用好,戒急戒躁,循序渐进,跟着我一起来探索交流. 通过上一篇基础篇的介 ...
随机推荐
- 在ecshop商品详情页显示供货商
好久没写文章了,隐约记得前几天有人问到这个问题:[如何在ecshop商品详情页面显示该商品的供货商?] 今天有时间整理下,分享给大家. 注:以下修改适用于ecshop2.7.2,其他版本未做测试. 1 ...
- 基于ARM-LINUX的温度传感器驱动(DS18B20) .
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等.主要根据应用场合的不同而改变其外观.封装 ...
- 转载:Source Insight查看ARM汇编源程序 && 高亮显示程序 && Source Insight打开project窗口出错
(1)Source Insight查看ARM汇编源程序.做ARM嵌入式开发时,有时得整汇编代码,但在SIS里建立PROJECT并ADD TREE的时候,根据默认设置并不会把该TREE里面所有汇编文件都 ...
- Swift2.0新特性
随着刚刚结束的 WWDC 2015 苹果发布了一系列更新,这其中就包括了令人振奋的 Swift 2.0. 这是对之前语言特性的一次大幅的更新,加入了很多实用和方便的元素,下面我们就一起来看看这次更新都 ...
- C++const与指针
1.指向常量的指针变量 指向常量的指针变量的定义方法: const 类型标识符 *指针变量名: 如: const int *p; 这种方法定义的指针变量只可读取它所指向的变量或常量的值,不可借助该指 ...
- 【HDU 4898】 The Revenge of the Princess’ Knight (后缀数组+二分+贪心+...)
The Revenge of the Princess’ Knight Problem Description There is an old country and the king fell in ...
- 心愿:做一个精简版MFC
我觉得自己有能力看懂MFC的C++代码和总体流程,但是由于MFC混杂了太多的东西,比如OLE等等不必要的东西,又做了无数的ASSERT判断,影响整体流程的理解.因此我要做一个精简版的MFC,而且能用它 ...
- Android Training精要(四) Intent注意事项
判断有处理Intent的Activity PackageManager packageManager = getPackageManager(); List<ResolveInfo> ac ...
- hadoop多机安装HA+YARN
HA 相比于Hadoop1.0,Hadoop 2.0中的HDFS增加了两个重大特性,HA(热备)和Federation(联邦).HA即为High Availability,用于解决NameNode单点 ...
- [FJSC2014]化合物
[题目描述] 首长NOI惨跪,于是去念文化课了.现在,他面对一道化学题. 这题的来源是因为在一个奇怪的学校两个化竞党在玩一个奇怪的博弈论游戏,这个游戏很蛋疼,我相信你们也没有兴趣听. 由于这个游戏涉及 ...