自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(103)
  • 资源 (28)
  • 收藏
  • 关注

原创 iOS DateFormatter转换时间戳部分手机crash问题

一系列调试后发现问题。把"yyyy-MM-dd HH:mm:ss" 改为 "yyyy-MM-dd HH:mm" 后就不会crash。秒可以单独处理,加到最后的tiemstamp 里就可以了。看着没毛病,一般的机器上也都能通过,但测试偶尔有机器Crash在 .dateFormat = "yyyy-MM-dd HH:mm:ss" 这一行。Crash日子也看不出啥问题。原因可能是传入 的精度太高了?有比较清楚的欢迎一起探讨。...

2022-08-04 15:56:16 374 1

原创 装饰模式Decorate和适配器模式adapter 区别

装饰者传入A 类 返回也是A类。 过程中只是将A添加了一些属性(功能),但并未改变A本身类适配器传入A类 返回B类。过程中起到数据的装配作用,改变了A本身的类型,去适配为B。更像一个转接口的功能。...

2022-03-30 12:25:41 214

原创 Swift实现二叉树的遍历(递归和非递归)

二叉树遍历搜索

2022-03-22 10:16:01 3007

原创 Swift实现排序算法

快速排序时间复杂度O( Nlog2N))1、选择基准点P,大的放在右边,小的放在左边。2、递归调用左边,右边func quickSorted (_ nums: inout [Int], _ left: Int, _ right: Int) { if left >= right { return ; } var l = left var r = right let pivot = nums[l] while l <

2022-03-20 21:24:07 3089

原创 LLVM 编译器

目录为什么需要编译?编译器的作用便是把我们的高级编程语言通过一系列的操作转化成可被计算机执行的机器语言编译器和解释器编译器是一种计算机程序,负责把一种编程语言编写的源码转换成另外一种计算机代码,后者往往是以二进制的形式被称为目标代码(object code)。解释器是一种计算机程序,它直接执行由编程语言或脚本语言编写的代码,并不会把源代码预编译成机器码。编译器在语言处理的位置预处理器:把存储在不

2022-02-08 16:22:33 3209

原创 Swift里自动引用计数

自动引用计数(ARC)Swift 使用自动引用计数(ARC)机制来跟踪和管理你的应用程序的内存。ARC 会在类的实例不再被使用时,自动释放其占用的内存Swift 使用 ARC 与在 Obejctive-C 中使用 ARC 非常类似自动引用计数的工作机制(引用计数器为0时才释放对象ARC 回收并释放了正在被使用中的实例后,该实例的属性和方法将不能再被访问和调用。如果试图访问这个实例,你的应用程序很可能会崩溃。为了确保使用中的实例不会被销毁,ARC 会跟踪和计算每一个实例正在被多少属性,常量和.

2021-10-13 20:00:45 279

原创 Swift里不透明类型

具有不透明返回类型的函数或方法会隐藏返回值的类型信息。函数不再提供具体的类型作为返回类型,而是根据它支持的协议来描述返回值。(多态?)不透明类型解决的问题例子,假设你正在写一个模块,用来绘制 ASCII 符号构成的几何图形。它的基本特征是有一个draw()方法,会返回一个代表最终几何图形的字符串,你可以用包含这个方法的Shape协议来描述:protocol Shape { //绘制里定义画法 方法 func draw() -> String}struct Trian...

2021-10-11 20:17:24 346

原创 Swift里泛型

泛型是 Swift 最强大的特性之一,很多 Swift 标准库是基于泛型代码构建的。实际上,即使你没有意识到,你也一直在语言指南中使用泛型。例如,Swift 的Array和Dictionary都是泛型集合。你可以创建一个Int类型数组,也可创建一个String类型数组,甚至可以是任意其他 Swift 类型的数组。泛型解决的问题(不同类型数据进行相同运算的问题?)// Int 类型的值交换函数func swapTwoInts(_ a: inout Int, _ b: inout I...

2021-10-01 10:57:11 800

原创 Swift里协议protocol

协议定义协议规定了用来实现某一特定任务或者功能的方法、属性,以及其他需要的东西。类、结构体或枚举都可以遵循协议,并为协议定义的这些要求提供具体实现。协议语法protocol SomeProtocol { // 这里是协议的定义部分}遵循协议语法结构体: 协议1, 协议2struct SomeStructure: FirstProtocol, AnotherProtocol { // 这里是结构体的定义部分}类:父类, 协议1, 协议2class SomeC

2021-09-08 20:14:15 381

原创 Swift里的扩展extension

目录扩展扩展的语法 (extension关键字。在其他语言里用来表示继承计算型属性(extension只能添加计算属性get方法,不能添加存储属性set方法,或观察者willSet、didSet,存储属性里构造器(扩展构造器必须调用指定构造器。只是改变存储属性?方法 (扩展示例方法和类方法)可变实例方法(mutating关键字用来表示,可修改self或属性)下标嵌套类型总结:扩展扩展可以给一个现有的类,结构体,枚举,还有协议添加新的功能。它还拥有不需要访问被扩

2021-09-07 17:56:58 1223

原创 Swift里嵌套类型

枚举常被用于为特定类或结构体实现某些功能。枚举可以方便的定义工具类或结构体,从而为某个复杂的类型所使用。为了实现这种功能,Swift 允许你定义嵌套类型,可以在支持的类型中定义嵌套的枚举、类和结构体。要在一个类型中嵌套另一个类型,将嵌套类型的定义写在其外部类型的{}内,而且可以根据需要定义多级嵌套。嵌套类型实践一个结构体BlackjackCard(二十一点),用来模拟BlackjackCard中的扑克牌点数。BlackjackCard结构体包含两个嵌套定义的枚举类型Suit和R...

2021-09-06 17:48:42 369

原创 Swift里类型转换

类型转换在 Swift 中使用is和as操作符实现。这两个操作符分别提供了一种简单达意的方式去检查值的类型或者转换它的类型。(用于check?)为类型转换定义类层次将类型转换用在类和子类的层次结构上,检查特定类实例的类型并且转换这个类实例的类型成为这个层次结构中的其他类型。(父类转换为子类或子类转成父类去处理?)//媒体父类class MediaItem { var name: String init(name: String) { self.name...

2021-09-03 20:34:53 1128

原创 学习为什么是一件感觉痛苦的事情

应该大部分人都会觉得学习是一件痛苦的事情。反正刚开始进入的时候不会快乐!虽然学习完成后会有成就感快乐,但进入状态前感觉痛苦,拒绝…也是昨晚和QP聊天,突然聊到的问题。今天百度了一下,觉得简书上这个写的还是很明了的。以下大部分Copy自原作者,也是看到后想留下个笔记吧学习感觉痛苦的根源最直接的答案是:耗能!我们在学新知识、新技能时为什么会觉得累?进化心理学认为这有可能是生物本能。我们大脑的基本结构,简单说就是神经元细胞及其上突触的结合体。人类所有的知识、记忆、技能等一切你能想到的东西,在生物学

2021-09-03 17:59:38 3812

原创 Swift 里错误处理

错误处理(Error handling)是响应错误以及从错误中恢复的过程。Swift 在运行时提供了抛出、捕获、传递和操作可恢复错误(recoverable errors)的一等支持(first-class support)表示与抛出错误Swift中错误用遵循Error协议的类型的值来表示。这个空协议表明该类型可以用于错误处理。Swift的枚举类型适合构建一组相关的错误状态,枚举关联值还可以提供错误状态的额外信息游戏中操作自动贩卖机enum VendingMachineErro...

2021-09-01 17:23:02 309

原创 Swift 可选链式调用

Swift 的可选链式调用和 Objective-C 中向nil发送消息有些相像,但是 Swift 的可选链式调用可以应用于任意类型,并且能检查调用是否成功。使用可选链式调用代替强制展开(使用?而非!)通过在想调用的属性、方法,或下标的可选值后面放一个问号(?),可以定义一个可选链。区别:当可选值为空时可选链式调用只会调用失败,然而强制展开将会触发运行时错误。可选链式调用和强制展开的不同。示例class Person { var residence: Residence?..

2021-08-30 19:59:11 256

原创 swift 析构过程deinit

析构器只适用于类类型,当一个类的实例被释放之前,析构器会被立即调用。析构器用关键字deinit来标示,类似于构造器要用init来标示。析构过程原理(类似OC里的dealloc)Swift 通过自动引用计数(ARC)处理实例的内存管理。deinit { // 执行析构过程}每个类最多只能有一个析构器,而且析构器不带任何参数和圆括号析构器是在实例释放发生前被自动调用的。你不能主动调用析构器。析构器实践例子描述了一个简单的游戏,这里定义了两种新类型,分别是Ban...

2021-08-30 14:29:53 1143

原创 Swift 里构造过程

构造过程(实体的初始化等生命周期?)构造过程是使用类、结构体或枚举类型的实例之前的准备过程。在新实例使用前有个过程是必须的,它包括设置实例中每个存储属性的初始值和执行其他必须的设置或构造过程。存储属性的初始赋值(struct,enumerte)类和结构体在创建实例时,必须为所有存储型属性设置合适的初始值。存储型属性的值不能处于一个未知的状态可以在构造器中为存储型属性设置初始值,也可以在定义属性时分配默认值。存储型属性分配默认值或者在构造器中为设置初始值时,它们的值是被直接设置的,不会触发任何

2021-08-27 21:05:47 519 2

原创 Swift里继承

目录继承概念定义一个基类 (没有集成自其它类的类。自动会陈为基类)子类生成( :号 后跟继承的基类类似OC)子类重写基类某个特性(必须用override关键字来修饰)访问超类的方法,属性及下标重写方法 (override 修饰复写后的方法)重写属性重写属性的 Getters 和 Setters重写属性观察器防止重写 (用final 关键字来修饰)总结继承概念一个类可以继承另一个类的方法,属性和其它特性。当一个类继承其它类时,继承类叫子类,被继承类叫超类..

2021-08-24 11:31:58 187

原创 Swfit里的 下标

下标可以定义在类、结构体和枚举中,是访问集合、列表或序列中元素的快捷方式。可以使用下标的索引,设置和获取值,而不需要再调用对应的存取方法。一个类型可以定义多个下标,通过不同索引类型进行对应的重载。下标不限于一维,你可以定义具有多个入参的下标满足自定义类型的需求。下标语法(定义下标用subscript)过在实例名称后面的方括号中传入一个或者多个索引值来对实例进行查询。//使用?它的语法类似于实例方法语法和计算型属性语法。定义下标使用subscript关键字,与定义实例方法类似,都是指定一个..

2021-08-23 15:26:58 146

原创 Swfit里的方法 Methods

方法是与某些特定类型相关联的函数。类、结构体、枚举都可以定义实例方法;实例方法为给定类型的实例封装了具体的任务与功能。类、结构体、枚举也可以定义类型方法;类型方法与类型本身相关联。类型方法与 Objective-C 中的类方法(class methods)相似学习swift的参考和笔记,感谢 :Swift编程 Swift51.com...

2021-08-14 22:17:52 98

原创 Swift里的属性

属性将值与特定的类、结构体或枚举关联。属性观察器可以添加到类本身定义的存储属性上,也可以添加到从父类继承的属性上。可以利用属性包装器来复用多个属性的 getter 和 setter 中的代码。存储属性一个存储属性就是存储在特定类或结构体实例里的一个常量或变量。存储属性可以是变量存储属性(用关键字var定义),也可以是常量存储属性(用关键字let定义)struct FixedLengthRange { var firstValue: Int let length: I...

2021-08-11 12:24:14 183

原创 Swift 类和结构体

Swift 中结构体和类的功能更加相近

2021-08-09 11:00:18 148

原创 Swift里的枚举

枚举为一组相关的值定义了一个共同的类型,使你可以在你的代码中以类型安全的方式来使用这些值参考:枚举类型

2021-08-08 16:41:49 217

原创 Swift里的闭包

闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks)以及其他一些编程语言中的匿名函数(Lambdas)比较相似。闭包采用如下三种形式之一:全局函数是一个有名字但不会捕获任何值的闭包 嵌套函数是一个有名字并可以捕获其封闭函数域内值的闭包 闭包表达式是一个利用轻量级语法所写的可以捕获其上下文中变量或常量值的匿名闭包闭包表达式闭包表达式是一种构建内联闭包的方式,它的语法简洁。在保证不丢失它语法清晰明了的同时,闭包表

2021-08-06 10:59:21 382

原创 Swift里的函数

函数是一段完成特定任务的独立代码片段。

2021-08-04 20:00:04 158

原创 Swift里的Set (集合)

目录初始化方法Set排序Set与Array 转换Array转SetSet 转为数组isEmpty添加元素移除添加元素是否包含 xflatMap类型转换( int 装换 为 sting)Set转换为Array [Int]遍历forEachfor in有序遍历集合成员关系1、intersection(_:)方法根据两个集合中都包含的值创建的一个新的集合Set2、 symmetricDifference 没有的元素组成新的S...

2021-08-01 20:12:09 891

原创 Swift里的Dictionary

初始化let dictionay = Dictionary<String,String>() //[:]let letDic = ["A":"Frist","B":"Second","C":"Third"];var mutableDic:[Int:String] = [1:"One",2:"Two",3:"Three"]访问let dicValue = letDic["B"] //"Second"var mutableDicValue = mutableDic[2] //"

2021-08-01 19:49:38 172

原创 Swift里的Array

初始化let numbers = Array(repeating: 5, count: 3) //构造方式 [5,5,5]let numbersArry = ArraySlice(repeating: 2, count: 4)//数组薄片??同上[2,2,2,2]let numsArr = [1,3,5,7] //不可变 简化形式let numsArray:[Int] = [1,3,5,7] //不可变 声明类型var numsList = [String]()//声明空数组,必须指定类型v

2021-08-01 19:40:48 1594

原创 Swift里的字符串Sting

String

2021-08-01 19:28:14 295

原创 Swift基本数据类型

Int 、UInt()浮点型 :Float , DoubleDouble表示64位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。 Float表示32位浮点数。精度要求不高的话可以使用此类型布尔型:Bool 值:ture , false字符串:String eg: "Hello, World!"字符:Charactereg : "C"可选型:Optional可选...

2021-07-28 22:33:18 828

原创 NSString

1、 string里是否包含字符* NSRange range = [string rangeOfString:@"*"]; if (range.location != NSNotFound) { // 包含字符 * }2、sing分段截取到数组里NSArray *array = [string componentsSeparatedByString:@"*"];

2021-07-28 22:14:38 82

原创 面向对象

然而木有对象JS类的认识方法类的扩充

2021-03-24 21:16:26 76

原创 类型、容器类、字符串处理

类型容器类字符串处理

2021-03-24 21:13:56 251 1

原创 ES & TS & JS

瞎想、瞎写、瞎抄。天下文章唯抄不断,理解万岁!ES:基础,JS是实现了ES相关的协议JS: 一堆尖括号的的语音。(看着凌乱,像远古时期,现在已经被抛弃的低效率的数据承载XML一样。不解的是为啥JS还是在大前端如此的发光发热,火的发紫)TS:实现了一些JS更广阔的功能,但最后是要编译为JS。...

2021-03-24 21:11:48 320

原创 iOS 正则表达式过滤

//用于 testField: shouldChangeCharactersInRange: replacementString:里输入过滤- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { // 输入校验,只允许数字 NSString *regex = @"^[0-9]*$"; .

2020-11-17 15:22:58 525

原创 iOS float转string精度丢失问题解决

- (NSString *)stringFromNumber:(CGFloat)text { NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; [numberFormatter setPositiveFormat:@"####.####"]; NSString *formattedNumberString = [numberFormatter stringFromNumber:[NSNumb.

2020-11-17 15:19:22 2590 1

原创 前言

2020-02-28 18:09:04 114

原创 编译原理4 - 语法分析 (三)

十三、LR1 分析法SLR的缺陷SLR只是简单的考察下一个符号b是否属于归纳项目A ->(定义为)α相关联的FOLLOW(A),但b∈FOLLOW(A)只是归纳α的一个必要条件,而非充分条件。(b 在A 的Follw 集,不能确保一定就可以规约。Follw 集可以排除不合理的规约,但不能确保正确的规约LR(1) 分析法的提出对于A ->α的规约,在不同位置A会要求不同的...

2020-02-16 21:34:19 894 1

原创 编译原理4 - 语法分析 (二)

目录八、自底向上的分析概念自底向上的语法分析移入-规约分析例子移入-规约分析的工作过程移入-规约分析可采取的4种动作移入-规约分析关键问题九、LR分析法概念LR分析法定义LR(K)分析LR分析法的基本原理句柄LR 分析器(自动机)的总体结构例子LR分析器的工作过程LR分析器的算法如何构造给定的LR分析表?十、LR(0) 分析L...

2020-02-09 13:28:20 1450

原创 编译原理4 - 语法分析 (一)

目录一、自顶向下的语法分析概述最左推导最右推导自顶向下的语法分析采用最左推导方式自顶向下的语法分析的通用形式(分析过程递归下降分析回溯预测分析二、文法转换消除左递归消除间接左递归消除左递归的算法提取左公因子三、LL1文法(预测分析法)S_文法 :(简单的确定性文法) 预测分析法的工作过程S_文法 :非终结符的后继符号集...

2020-02-08 10:56:13 939

swift 二叉树遍历搜索

swift 二叉树遍历搜索

2022-03-22

swift Array 相关操作

swift Array 相关操作

2022-02-12

自动引用计数.playground.zip

Swift自动引用计数代码

2021-10-13

扩展嵌套类型.playground.zip

Swift里扩展,extension.类似于category 类别

2021-09-08

协议Protocol.playground.zip

Swift里的协议protocol练习

2021-09-08

67.addBinary.playground.zip

leetCode 第67题。Swift解

2021-09-02

错误处理Error.playground.zip

Swift错误处理

2021-09-02

Swift下标.playground.zip

swift 下标语法

2021-08-23

闭包.playground.zip

swift 闭包.playground.zip

2021-08-06

函数func.playground.zip

swift 函数练习

2021-08-05

Dictionary.playground.zip

swift dictionary

2021-08-02

String.playground.zip

Swift里String

2021-08-02

JHCookieRequesTest.zip

在NSHTTPCookieStorage里的cookie会带入新的WebView里共享,而WKHTTPCookieStore里的cookie 并不会带入到新的WebView里共享。同一个WKWebView里写入的Cookie在两者都可以获取到

2019-06-13

tableViewCell 自适应高度

通过estimatedHeightForRowAtIndexPath: Masonry ,自动适配cell

2017-05-10

KVO的使用场景二 BBBB

用KVO实现动态改变tableCell里的显示(例子源于《iOS7编程实战》第22章。仅供自己以后学习参考使用

2016-01-05

KVO的使用场景一 A A A

用KVO实现滑动scrollerView里对NavigationBar颜色的渐变

2016-01-05

全国城市名按字母排序 ABCD

全国城市名按字母排序的plist文件,除去后缀

2015-11-03

hitTest 与pointInside 方法的应用

更改UIView对响应的交互方式。解决获取被遮挡住视图的响应事件。主要重新写父类的hitTest:withEvent:和pointInside:withEvent:方法实现。

2015-10-11

ASI下载数据,保存到相册

用ASIHttpRequest下载图片,先保存在项目中,然后可以保存到相册,调用相机,从相册中选择图片保存到工程里(可以上传用)

2013-07-12

FMDB操作demo (需要至少12个字的名称,过分!)

自己写的一个关于FMDB练习的demo,包括增、删、改、查。与大家分享,希望我的代码对大家有帮助! Learn to share progress!

2013-07-01

多线程GCD- Demo

对应翻译文里的代码,这个是自己照片做的,因为我这看到Gread!不能用,所以自己重设了个键,这个是过用多线程后的

2013-06-27

GCDdemo多线程(需要至少12个字的名称,过分!)

对应译文中的代码。这个是自己照着写的,有注释的地方,希望对大家学习有帮助

2013-06-27

GCD_demo __ 练习

征对之前做了优化,添加了多线用来解析XML,利用AIS的block更提高效率。 可对比http://download.csdn.net/detail/zjh467545737/5390945

2013-06-18

iOS异步加载图片 (需要至少12个字的名称,过分!)

异步加载图片,之前的版本发现还是有问题,这次做了修改.上次忘记初始化,犯一低级错误。不好意思

2013-05-16

iOS从网络异步加载图片

之前XML解析的托展,这次用的是TBXML的第三方解析的。(可能服务器问题,获取的数据有错,但方法是没问题的) 然后用IconDownloader异步加载得到的图片流。

2013-05-15

AISHTTP发送请求,NSXML解析XML文件

解析的是开源中国的最近动弹的内容,ASIHTTP发送请求,NSXML解析出结果,只是打印出来数据,还没有对其处理。开源中国项目中用的是TBXML第三方解析的数据。

2013-05-13

SplitViewControllerDemo

iPad中的splitViewController的应用,从一个视图中弹出spllitVC,而不是一上来根视图就是splitVC. 主要对照http://blog.csdn.net/kmyhy/article/details/7250938这个博文写的代码,因为我发现此博主给的代码和上面所讲的不大一致,就自己写了一个,供大家学习

2013-01-13

MesaSQLite (需要至少12个字的名称,过分!)

可心查看iPhone模拟器中的sqlite数据库资源表格

2013-01-02

空空如也

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

TA关注的人

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