Swift编码总结1
1. fileprivate (set) var hasSetDiscount = false中fileprivate (set)表示什么意思:
//设置setter私有,但是getter为public
2.取值需要判断:
if let text = textField.text, !text.isEmpty {}
if let finish = resultDic["finish"] as? Bool,finish {
// finish为true
}else{
// finish为false
}
3.flatMap使用:
dataSource = dataSource.flatMap({ (model) -> TipModel? in
model.isChoosen = false
return model
})
4.dismiss之后push回到某个页面:
self.dismiss(animated: false, completion: {
let dvc = DishAAController()
dvc.personNum = num
if let tempNav = (UIApplication.shared.delegate as? AppDelegate)?.window?.rootViewController as? BaseNavigationController{
for vc in tempNav.childViewControllers {
if vc.isKind(of: WaiterHomeViewController.self){
vc.navigationController?.pushViewController(dvc, animated: false)
}
}
}
})
5.根据类型选择不同的值:
使用枚举和结构体。
import UIKit struct ApplyPayModel { let type: ApplyPayType
let qrString: String
var title: String{
return type.typeName()
}
var desc: String {
return type.infoString
}
} enum ApplyPayType: String {
case ali = "ali"
case wechat = "wechat"
case card = "card" func typeName() -> String {
switch self {
case .ali:
return GLOBAL_LANGUAGE("支付宝")
case .wechat:
return GLOBAL_LANGUAGE("微信支付")
case .card:
return GLOBAL_LANGUAGE("欢乐E卡")
}
} func getPayCompanyImageName()-> String {
switch self {
case .ali:
return "AliPay"
case .wechat:
return "WeChat"
case .card:
return "ChinaMerchantsBank"
}
} var infoString: String {
switch self {
case .ali:
return GLOBAL_LANGUAGE("支付宝扫码 开通自动买单功能")
case .wechat:
return GLOBAL_LANGUAGE("微信扫码 开通自动买单功能")
case .card:
return GLOBAL_LANGUAGE("欢乐E卡 开通自动买单功能")
}
} }
6.点击弹出控制器:
class LanguageViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.registerClassFromClass(type: UITableViewCell.self)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if let presentingViewController = self.presentationController {
let size = tableView.sizeThatFits(presentingViewController.containerView?.size ?? .zero)
self.preferredContentSize = CGSize(width: , height: size.height)
}
}
}
7.控制器传model初始化控制器:
let model: CardPayHistoryInfoModel
init(payinfo: CardPayHistoryInfoModel) {
self.model = payinfo
super.init(nibName: "NFCCardPrintPreviewController", bundle: nil) }
8.Struct定义model和Class定义model区别:
Swift中的类与结构体有如下相似点: .定义属性来存储值。 .定义函数来提供功能。 .通过定义下标语法使用下标的方式取值。 .定义构造方法来对其进行初始化。 .通过扩展来在原始基础上添加功能。 .通过协议来定义实现标准。 当然类和结构体也有许多不同点,下面这些功能是类独有的,结构体没有: .通过继承来创建类的子类。 .在运行时允许对类的实例进行类型的检查和解释。 .析构方法可以释放被类引用的资源。 .通过引用计数允许一个类实例的多处引用。 当开发者在代码中传递这些实例时,结构体总是被赋值,而类则是被引用。这是结构体和类的最本质区别。
9.对Action统一结构体处理:
fileprivate struct Action {
static let backClick = #selector(ScreenSaverController.back(_:))
}
10.where Self: UIView 中的where Self是什么意思?
@objc protocol NavigationBarProtocol: NSObjectProtocol {
func updateViewForLanguage()
}
extension NavigationBarProtocol where Self: UIView{
func configBackgroundColor() {
self.backgroundColor = UIColor(hexString: "1f2124")
}
func addWaiterLoginSwipe(){
self.viewController?.addWaiterLoginSwipe()
}
}
NavigationBarProtocol这个协议只能被 UIView 继承。
Swift编码总结1的更多相关文章
- Swift— Swift编码规范之命名规范-备
程序代码中到处都是自己定义的名字,取一个有样并且符合规范的名字非常重要. 命名方法很多,但是比较有名的,广泛接受命名法有: 匈牙利命名,一般只是命名变量,原则是:变量名=类型前缀+描述,如bFoo表示 ...
- 《从零开始学Swift》学习笔记(Day 56)——命名规范Swift编码规范之命名规范
原创文章,欢迎转载.转载请注明:关东升的博客 程序代码中到处都是自己定义的名字,取一个有样并且符合规范的名字非常重要. 命名方法很多,但是比较有名的,广泛接受命名法有: 匈牙利命名,一般只是命名变量, ...
- 《从零開始学Swift》学习笔记(Day 56)—— Swift编码规范之命名规范
原创文章,欢迎转载.转载请注明:关东升的博客 程序代码中到处都是自定义的名字,取一个有样而且符合规范的名字非常重要. 命名方法非常多,可是比較有名的,广泛接受命名法有: 匈牙利命名,一般仅仅是命名变量 ...
- Swift之Swift编码规范
swift 支持的 markdown 语法. 1. 编码格式 1.1 使用二元运算符(+, -,==, 或->)的前后都需要添加空格 let value = + 1.2 在逗号后面加一个空格 l ...
- 《从零开始学Swift》学习笔记(Day 57)——Swift编码规范之注释规范:文件注释、文档注释、代码注释、使用地标注释
原创文章,欢迎转载.转载请注明:关东升的博客 前面说到Swift注释的语法有两种:单行注释(//)和多行注释(/*...*/).这里来介绍一下他们的使用规范. 1.文件注释 文件注释就在每一个文件开头 ...
- 《从零開始学Swift》学习笔记(Day 57)——Swift编码规范之凝视规范:文件凝视、文档凝视、代码凝视、使用地标凝视
原创文章.欢迎转载.转载请注明:关东升的博客 前面说到Swift凝视的语法有两种:单行凝视(//)和多行凝视(/*...*/).这里来介绍一下他们的使用规范. 1.文件凝视 文件凝视就在每个文件开头加 ...
- 一种swift编码风格指南(供参考,by linkedin)
http://www.cocoachina.com/swift/20160701/16894.html
- 《从零开始学Swift》学习笔记(Day 58)—— Swift编码规范之变量或常量声明规范
原创文章,欢迎转载.转载请注明:关东升的博客 声明是在声明变量.常量.属性.方法或函数和自定义类型时候需要遵守的规范. 首先变量或常量时每行声明变量或常量的数量推荐一行一个,因为这样以利于写注释.示例 ...
- [Swift]编码拾遗
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs ...
- Swift编码总结10
1.打开App显示文件已损坏,打不开,您应该将它移到废纸篓,怎么办? 终端输入执行:sudo spctl --master-disable 2.Mac的Siri打开网页控制台,进入开发中模式:不过我觉 ...
随机推荐
- 一文读懂后缀自动机 Suffix_Automata
原论文(俄文)地址:suffix_automata 原翻译(中文)地址:后缀自动机详解(DZYO的博客) Upd:强推浅显易懂(?)的SAM讲解 后缀自动机 后缀自动机(单词的有向无环图)--是一种强 ...
- C# CRC16校验码 1.0
/// <summary> /// 计算CRC16校验码 1.0 /// </summary> /// <param name="bytes"&g ...
- Sqoop 安装与简单测试
sqoop基于Hadoop与Hive Hadoop https://www.cnblogs.com/xibuhaohao/p/11772031.html Hive https://www.c ...
- Windows异常
一.什么是异常 异常指的是在程序运行过程中发生的异常事件,通常是由外部问题(如硬件错误.输入错误)所导致的.简单来说异常就是对于非预期状况的处理,当我们在运行某个程序时出现了异常状况,就会进入异常处理 ...
- C# 模式匹配
最近在使用vs编码时,重构提示:模式匹配 Element view = bindable as Element; if (view == null) { return; } 运用模式匹配可以简写为: ...
- linux的计划任务操作
1.cron服务来设置 计划任务查看与设置命令:crontab 包括条目: 分钟m:0-59 小时h:0-23 月日dom:1-31 月份mon:1-12 星期dow:0-7 例子: 每隔2小时处理一 ...
- 问题--Notepad++保存文件遇到Failed to save file
一.问题如下 使用Notepad编码,保存时遇到问题:Failed to save file. Not enough space on disk to save file? 如下图所示: 二.解决方法 ...
- 让img图片像背景一样显示
如何让图片像背景一样显示呢? 这里需要用到object-fit属性 MDN地址:https://developer.mozilla.org/zh-CN/docs/Web/CSS/object-fit ...
- C++概念分析之 重载、重写(覆盖)和隐藏的区别
一.基本概念区别: 重载:是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型. 隐藏:是指派生类的函数屏蔽了与其 ...
- 从一个表中往另外一个表中插入数据用到的SQL
insert into jdjc_zzjcxm (zj,jcxmmc) select sys_guid(),zbmc from JDJC_WHJXXMMC;