ios -- 教你如何轻松学习Swift语法(三) 完结篇
person.dog!.toy!.price = 太危险 强制解包,如果没值,直接程序崩溃
if let dog = person.dog {
if let toy = dog.toy {
toy.price =
} 这样解包虽然安全,但是太麻烦
}
person.dog?.toy?.price =
//当person.dog 为nil的时候,后面的操作就不再执行
let price = person.dog?.toy?.price
person.dog?.toy?.flying()
protocol SomeProtocol {
// 协议方法
}
protocol SportProtocol {
func playBasketball()
func playFootball()
}
class SomeClass:FirstProtocol,AnotherProtocol {
// 类的内容
// 实现协议中的方法
}
例如:
class Person : SportProtocol {
var name : String = ""
func playBasketball() {
print("打篮球")
}
func playFootball() {
print("踢足球")
}
}
class SomeClass:SomeSuperClass, FirstProtocol,AnotherProtocol {
// 类的内容
// 实现协议中的方法
}
protocol CrazySportProtocol : NSObjectProtocol {
func jumping()
}
protocol SportProtocol : CrazySportProtocol {
func playBasketball()
}
@objc protocol SportProtocol {
func playBasketball()
func playFootball()
//加optional该方法就成为可选的了
optional func jumping()
}
class Person: SportProtocol {
@objc func playBasketball() { 在方法前也要加上关键字@objc,不管是可选还是必选
}
@objc func playFootball() {
}
@objc func jumping() {
}
}


// 尾随闭包 : 如果函数的最后一个参数是一个闭包.那么可以将函数调用写成尾随闭包
//就是把闭包写到()的后面, 本来是写在()里面的
tools?.loadData() { (result) in
print("在ViewController中获取到数据:\(result)")
} // 如果函数有且只有一个参数,并且是一个闭包, 那么()也可以省略
tools?.loadData { (result) in
print("在ViewController中获取到数据:\(result)")
}

lazy var 变量: 类型 = { 创建变量代码 }()
lazy var names : [String] = {
return ["why", "yz", "lmj"]
}()
当执行到上面代码的时候,names不会被加载到内存中, 当names第一次使用时,才会被加载

//try方式 --> 手动处理异常, 并且可以获取到最终的异常结果
do { //如果有异常error有值
let regex = try NSRegularExpression(pattern: "", options: .CaseInsensitive)
} catch { //通过error拿到异常结果
print(error)
}

ios -- 教你如何轻松学习Swift语法(三) 完结篇的更多相关文章
- ios -- 教你如何轻松学习Swift语法(一)
目前随着公司开发模式的变更,swift也显得越发重要,相对来说,swift语言更加简洁,严谨.但对于我来说,感觉swift细节的处理很繁琐,可能是还没适应的缘故吧.基本每写一句代码,都要对变量的数据类 ...
- ios -- 教你如何轻松学习Swift语法(二)
前言:swift语法基础篇(二)来了,想学习swift的朋友可以拿去参考哦,有兴趣可以相互探讨,共同学习哦. 一.可选类型(重点内容) 1.什么是可选类型? 1.1在OC开 ...
- iOS开发swift语法0基础篇—————(swift技术交流群:361513739)
iOS开发之swift语法0基础篇:点击打开链接 swift技术交流QQ群361513739
- IOS之Foundation之探究学习Swift实用基础整理<一>
import Foundation //加载网络数据,查找数据的字符串 let dataurl = "http://api.k780.com:88/?app=weather.city& ...
- 一步一步学习Swift之(三):巧用AutoLayout布局
一些初学者经常在使用autoLayout时,做得效果不太理想,经常会出现界面错乱的情况. 本文章用一个小实例说明autoLayout的使用 非常的简单,只要记住 规则就可以使界面适屏布局,适配各种ip ...
- 轻松学习Ionic (三) 安装sass并在webstorm中为scss添加watcher
1. 安装Ruby 最新为 2.1.5版本,不放心的话安装 Ruby 1.9.3-p551 安装过程中注意勾选上第二项!即将Ruby加入到可执行的环境变量中去. 安装结束后在命令行中 ...
- JavaScript权威设计--jQuery,Ajax.animate,SVG(简要学习笔记二十)[完结篇]
1.$和jquery在全局命名空间中定义的唯一两个变量. 2.jquery是工厂函数,不是构造函数.他返回一个新创建的对象. 3.jquery的四种调用方式: <1>传递C ...
- 手把手教你全家桶之React(三)--完结篇
前言 本篇主要是讲一些全家桶的优化与完善,基础功能上一篇已经讲得差不多了.直接开始: Source Maps 当javaScript抛出异常时,我们会很想知道它发生在哪个文件的哪一行.但是webpac ...
- 一步一步学习Swift之(二):好玩的工具playground与swfit基础语法
playground好于在于能一边写代码一边看到输出的常量变量的值.不需要运行模拟器. 我们来试一下该工具的用法. 打开xcode6开发工具,选择Get started with a playgrou ...
随机推荐
- 【BZOJ】2563: 阿狸和桃子的游戏
http://www.lydsy.com/JudgeOnline/problem.php?id=2563 题意:给一个n个加权点m条加权边的无向图,两个人轮流拿走一个点,最后使先手得分-后手得分尽量大 ...
- 【HDU】4405 Aeroplane chess
http://acm.hdu.edu.cn/showproblem.php?pid=4405 题意:每次可以走1~6格,初始化在第0格,走到>=n的格子就结束.还有m个传送门,表示可以从X[i] ...
- Codeforces Beta Round #1
A题,水题. B题也是水题,弄的比较麻烦,前几天队内赛见过,水题怎么水都能过. C题 题意:给出正n边形上的三个点,求最小的正n边形的面积. 以前貌似见过此题.思路也没什么进展,就是枚举n,通过旋转a ...
- Highcharts用函数动态填充静态值
这种方式适用于其他动态函数模式 series: [{ name: 'Random data', data: (function() { // generate an array of random d ...
- GO语言练习:为类型添加方法
1.代码 2.运行 1.代码 package main import "fmt" type Integer int //给in类型添加 Less 方法,int原来的方法被Integ ...
- 在配置IIS负载均衡时,引起的一系列问题
问题一: IIS中要上传文件的路径是另一台服务器的地址(如:本机IP是192.168.0.100,文件保存的路径在://192.168.0.101/images/folder),在上传时抛出异常: A ...
- html5 语义
页面示意图
- c++20701除法(刘汝佳1、2册第七章,暴搜解决)
20701除法 难度级别: B: 编程语言:不限:运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 输入正整数n,按从小到大的顺序输出所有 ...
- IOS第七天(5:UiTableView 汽车品牌,复杂模型分组展示,A-Z索要列表) (2015-08-05 14:03)
复杂模型分组展示 #import "HMViewController.h" #import "HMCarGroup.h" #import "HMCar ...
- request获取请求头和请求数据
package cn.itcast.request; import java.io.IOException; import java.io.InputStream; import java.io.Pr ...