自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 类的初始化和反初始化

初始化器初始化器在创建特定类型的实例时被调用。默认的属性值如上所述,你可以在初始化器里为存储属性设置属性值。另外,指定一个默认属性值作为属性声明的一部分。当属性被定义的时候你可以通过为这个属性分配一个初始值来指定默认的属性值。默认的初始化器Swift 为所有没有提供初始化器的结构体或类提供了一个默认的初始化器来给所有的属性提供了默认值。这个默认的初始化器只是简单的创建了一个所有属性都有默认值的新实例。自动初始化可以提供初始化形式参数作为初始化器的一部分,来定义初始化过程的类型和值

2020-07-03 16:42:15 2289

原创 Swift 编程范式

范式转换 - 从一个题目说起读入一个文本文件,确定所有单词的使用频率并从高到低排序,打印所有单词及其频率的排序列表范式转换 - 传统解决方案范式转换 - 函数式范式转换命令式编程常常迫使我们处于性能考虑,把不同的任务交织起来,以便能够用一次循环来完成多个任务。而函数式编程用map()、filter()这些高阶函数把我们解放出来,让我们站在更高的抽象层次上去考虑问题,把问题看得更清楚。简洁面向对象编程通过封装不确定因素来使代码能被人理解;函数式编程通过尽量减少不确定因素来式代码能被

2020-06-25 15:10:18 279

原创 Swift Dictionary 底层

从下标操作谈起Dictionary._Variant的setValue_NativeDictionary的setValue_NativeDictionary的 _insert_NativeDictionary 的 uncheckedInitialize_NativeDictionary 的 findKey

2020-06-22 16:19:46 284

原创 Swift Set 底层

从 Set的 insert说起_NativeSet的 find方法HashTable线性探测的开放寻址法_NativeSet 的 insertNewHash的 insertNew_NativeSet的uncheckedInitialize

2020-06-21 11:41:48 223

原创 Swift Set

Set的三个特性确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,两者必居其一。互斥性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的。Swift里面的 SetSwift 的 set类型写作 Set,这里的 Element是Set要存储的类型。不同于数组,集合没有等价的简写。创建 Set使用初始化器语法来创建一个确定类型的 空 Set使用数组字面量创建 SetSet类型的哈希值

2020-06-21 11:14:15 1020

原创 Swift 数组底层探究

数组的协议结构Sequence 序列Collection 集合RangeReplaceableCollection 可以做区间替换的集合Array 数组graph TBSequence-->CollectionCollection-->RangeReplaceableCollectionRangeReplaceableCollection-->ArraySequence一个序列(sequence)代表的是一系列具有相同类型的值,你可以对这些之进行迭代。It

2020-06-18 15:56:53 446

原创 Swift 中的数值类型

整数Swift 提供了 8、 16、 32 和64位编码的有符号和无符号整数命名方式:例如 8 位无符号整数的类型是 UInt8,32位有符号整数的类型是 Int32通过 min 和 max 属性来访问每个整数类型的最小值和最大值Swift 提供了一个额外的整数类型: Int,它拥有与当前平台原声字相同的长度同时 Swift 也提供UInt类型,来表示平台长度相关的无符号整数建议在用到整数的地方都适用Int浮点类型Double:64位浮点数,至少有15位数字的精度Float:32位浮

2020-06-01 09:05:27 298

原创 Swiftc 强大的命令行工具

编译过程LLVM:LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本。Swift 编译过程swiftc常见命令生成可执行文件 swiftc -o main.out main.swift生成抽象语法树的命令(AST) swiftc main.swift -dump-ast

2020-05-31 17:17:28 972

原创 Web常用方案格式

HTTP:超文本传输协议方案,除了没有账号和密码之外,与通用的URL格式相符。默认端口:80;基本格式:http://< host > : < port > / < path > ? < query > # < frag >示例:http://renduoduo2019.com/admin/courierManagehttp:...

2019-10-13 11:12:12 614

原创 IOS 学习笔记

UIViewKayFrameAnimationOptions :CalculationModeLinearCalculationModeDiscreteCalculationModePacedCalculationModeCubicCalculationModeCubicPaced其描述的是动画的运动速度CADisplayLink参考这篇文章:Click ondraw()...

2019-09-19 20:32:17 123

原创 CALayer 内容层动画

UIView 和 CALayer的区别UIView继承UIResponder,因此UIView可以处理响应事件,而CA Layer继承NSObject,所以CA Layer它只负责对内容的创建,绘制UIView负责对内容的管理,CA Layer负责对内容的绘制UIView的位置属性只有frame,bounds,center,而CA Layer除了具备这些属性之外还有anchorPoint,...

2019-09-19 20:31:54 92

原创 UIView视图中常见的动画的属性分析

1.位置属性:frame bounds center它们都是描述UIView的位置信息:frame可以对x坐标,y坐标,width,height四个属性进行操作,frame的x和y是相对于父控件的原点计算的bounds一般对其width和height进行操作,其x,y是相对于自己而言的center描述的是x,y信息,即UIView的中心位置...

2019-09-17 18:56:17 116

原创 IOS启动参数

Xcode的模式编辑器你可以添加启动参数,这些参数将作为默认设置传递给你的应用。这些参数是未文档化的,通常是调试构建特有的。此外,它们有改变的倾向,苹果公司可能在任何时候移除他们。过程参考这一篇文章:点击查看第一个点下面是对IOS的启动参数列表UIViewShowAlignmentRects YES 在视图显示对齐矩阵NSDoubleLocalizedStrings YES 强制字符串重...

2019-09-16 16:04:35 397

原创 IOS 可视化格式

可视化格式约束介绍:可视化格式由一个描述视图的文本字符串组成。你根据项出现的顺序依次列出他们。文本序列指定间隔,不等量和优先级。结果将布局形象化地表现为一个简短的文本。如:NSLayoutConstraint.constraints(withVisualFormat: "V:[viwe1]-8-[view2]", options: .alignAllLeading, metrics: nil...

2019-09-11 18:50:17 153

原创 IOS 布局约束法则

NSLayoutConstraint:布局约束NSContentSizeLayoutConstraint:布局约束NSLayoutConstraint:布局约束NSLayoutConstraint:布局约束

2019-09-07 02:08:47 1242

原创 IOS开发小技巧(Swift)

1、可视化对齐矩阵在运行时用对齐矩形覆盖在视图上,在scheme中设置一个启动参数即可。在iOS版中是UIViewShowAlignmentRects,在OSX中是UIViewShowAlignmentRects,将该参数的值设置为YES,并且用一个短划线做前缀,矩形就会显示在各个视图上。设置方式:注: 调出计划的快捷方式command + shift + <也可以通过代码设置:l...

2019-09-04 19:41:54 259

转载 iOS Autolayout中的“压缩阻力”和“内容吸附”的使用

一、什么是压缩阻力压缩阻力是视图保护其内容不被压缩的方式,压缩阻力高的视图能够抵抗收缩,防止内容被压缩。一般出现在给视图的宽度的约束小于视图内容显示需要的宽度,这时视图内容就会被压缩二、什么事内容吸附...

2019-09-04 17:10:11 205

转载 String hashCode 方法为什么选择数字31作为乘子

String hashCode 方法为什么选择数字31作为乘子1、IntelliJ IDEA怎么使用@Contract注释什么是@Contract注解:注释通过定义方法参数和返回值之间的依赖关系,为您的代码带来更多的安全性。该信息为源代码提供了更智能的控制流分析,并有助于避免可能出现的错误。这个注释只能用于IDEA来检查可能的错误,Java编译器将几乎完全忽略它(它将在编译的工件中,但不起...

2019-09-04 15:05:27 126

转载 GCD使用详解(Swift)

一、什么是GCDGCD(Grand Central Dispatch)是苹果公司实现的一套先进先出执行的任务队列, 我们只要将程序闭包传给GCD, mac os会在系统线程池里执行该任务, 而且无法确定到底是哪个线程执行的。 总之, GCD是个顺序或并发执行队列, 封装了线程的调度, 开发者不用直接操作线程了。DispatchQueue支持同步sync和异步async方法,每个人物即Disp...

2019-08-29 02:58:42 424

原创 JAVA实现查找最长回文子串

题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。方法一:采用滑动窗口,较为简单,但用时长。public String longestPalindrome(String s) { if(s.length() == 1 || s.length() == 0){ //判断单字符串和空字符串 return s;...

2019-07-10 02:22:46 1745

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除