- 博客(320)
- 资源 (38)
- 收藏
- 关注
原创 如何写好客户端技术方案
作为一个开发者,每次需求评审完事儿之后,首要的事情就是做技术方案,今天就拿我平时做技术方案的思路,写一下如何撰写出一个好的技术方案。 并会在下方附上方案模板,有不同观点的可以评论沟通。
2022-02-15 17:27:18 3067
原创 为什么建议iOS开发使用Swift
Swift目前已经形成了一个 完善的Apple开发生态,苹果也是发了推这个,而且从语言的排行榜也可以看出,swift一直在网上走,而且swift使用时效率更快,并且更加安全,因为每一个输入都有一个明确的类型,很少导致对象类型不符的crash,然后就是更具表达性,就是用很少的代码表达一段完整的逻辑,通过struct和enum类型可以实现这些功能,例如:同时传入的值同时遵循多个协议,Swift可以直接用&实现,而OC需要额外定义一个协议遵守另外的多个协议来处理,同时 Swift代码量明显减少,可读性更强。 他的
2022-01-24 18:54:25 5948 4
原创 「观察者(Observer)」设计模式 Swift实现
观察者设计模式(Observer Pattern)是一种行为型设计模式,它定义了对象之间的一种一对多的依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都会受到通知并自动更新。在这种模式中,被观察者对象(Subject)存储其观察者对象(Observer)列表,并提供了用于添加和删除观察者对象的方法。而观察者对象则实现了一个更新方法来响应被观察者状态的变化。(假如让你实现,你会怎么做)
2023-07-12 15:11:35 1094
原创 「备忘录(Memento)」设计模式 Swift实现
备忘录设计模式(Memento Pattern)是一种行为型设计模式,它可以在不破坏封装性的情况下,捕获并保存一个对象的内部状态,并在需要时恢复该对象的状态。在这种模式中,备忘录对象用于存储一个对象的状态,而负责人对象(Caretaker)用于管理备忘录对象,负责维护版本历史记录,并提供恢复对象状态的功能。
2023-06-26 16:37:56 590
原创 「中介者(Mediator)」设计模式 Swift实现
中介者设计模式(Mediator Pattern)是一种行为型设计模式,它可以促进对象之间的松耦合关系,通过集中控制这些对象之间的通信来减少对象之间的直接依赖。在这种模式中,中介者对象充当了通信的中心枢纽,其主要的功能是将对象之间的通信转移至自身,从而使这些对象之间解耦,并且更容易维护和扩展。具体来说,在中介者模式中,每个对象都有指向中介者对象的引用,通过调用中介者对象的方法来与其它对象进行协调和通信,而不是直接与其它对象进行交互。
2023-06-05 15:36:05 755
原创 「迭代器(Iterator)」设计模式 Swift实现
迭代器模式属于设计模式中的行为型模式,它可以帮助我们在遍历聚合对象时提供一种优雅的解决方案,其核心思想在于提供一个迭代器对象,提供按照一定规则遍历聚合对象的方式。Swift语言中,迭代器模式可以使用IteratorProtocol和Sequence两个系统协议来实现。其中IteratorProtocol协议用来定义一个迭代器,它必须实现一个next方法,该方法会返回聚合对象中的下一个元素。而Sequence协议用来定义聚合对象,并提供一个makeIterator()方法,用来生成所需的迭代器对象。
2023-06-02 17:54:06 182
原创 「命令(Command)」设计模式 Swift 实现
命令模式(Command Pattern)是一种行为型设计模式。命令对象可以把行动(action) 及其参数封装起来,注意,命令模式是传递行为的一种方法。它允许对调用的对象实现可逆操作,或者暴露执行历史记录。这种模式可以帮助您的代码更加灵活和可扩展。
2023-05-23 19:43:49 602
原创 「责任链 Chain Of Responsibility 」 Swift实现
责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,用于将请求连续传递给多个处理器直到被处理为止。在 Swift 中,可以使用类来实现责任链模式。需要注意的是,责任链模式不宜过长,过多地使用责任链模式会降低代码的可维护性,同时还可能会影响程序的性能。
2023-05-23 15:18:09 669 1
原创 SQL 触发器
触发器:一种与表操作有关的数据库对象,当触发器所在表上出现指定事件(新增、修改、删除数据)时,将调用该对象,即表的操作事件触发表上的触发器的执行。
2023-01-03 10:00:00 486
原创 SQL 存储过程
现需要向学生表中插入新的学生数据。但在插入学生数据的时,需要同时检查老师表里的数据。如果插入学生的老师不在老师表里,则先向老师表中插入一条老师数据,再向学生表中插入学生数据存储过程:一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,然后通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。
2023-01-02 21:07:09 777 1
原创 mysql数据库 总结
简介:介绍什么是mysql以及整套课程的大纲知识点简介:mysql的简介1、什么是mysql?mysql是一个开源的关系型数据库管理系统,现在是oracle公司旗下的一款产品,由C和C++语言编写,可移植性高。支持在多种操作系统上安装,最常见有AIX,linux,window。mysql因为开源免费,所以受到了目前互联网行业的欢迎。
2023-01-02 18:49:04 559
原创 SQL中灵活的视图
如果有很多地方都需要按上面的逻辑查询,那LEFT JOIN的脚本就需要写。比如:假如有3个学校,每个学校的学生数据在各自的表中,如何一次性查询所。复杂的关联、嵌套,导致执行计划不可控,查询性能低下;很多遍,有没有一种简写的方式?
2023-01-02 18:29:35 399
原创 连接表「INNER JOIN」「LEFT JOIN」「RIGHT JOIN」+ 多表查询
表关联执行顺序第一步:参与连接的两个表做笛卡尔积;第二步:根据ON后的连接条件筛选笛卡尔积的结果;第三步:补充左表(LEFT JOIN)或右表(RIGHT JOIN)不满足连接条件的数据(INNER JOIN内关联时无此步骤) ;第四步:根据WHERE后的过滤条件筛选第三步的结果;
2023-01-02 12:08:34 1608 1
原创 子查询+「EXISTS」 以及 组合查询UNION ALL
子查询 里边不可返回多条查询记录,否则会直接报错。上边查询后的数据如下:备注:老师表中有 teacher_name, teacher_id。 学生表中有 teacher_id 和老师表关联代码:优化代码:前伸「后边会学 表关联用法」查询后的数据如下:组合查询UNION ALLSELECT * FROM student WHERE age = 10; --查询出 14 条记录SELECT * FROM student WHERE class_id = ‘G0101’;
2023-01-01 12:29:45 819
原创 SQL 汇总统计及GROUP BY
介绍几个常用的聚集函数及使用方法,使用聚集函数实现分组统计介绍如何对分组统计的结果进行过滤?, 介绍如何对分组统计的结果进行排序?, 介绍SELECT语句中各个子句的书写顺序
2022-12-03 20:20:06 4233
原创 SQL创建新的输出字段
对单个字段或者多个字段进行数值计算;数值计算;字段拼接;字段使用别名;CASE WHEN逻辑转换;case when 逻辑嵌套
2022-12-02 08:51:54 1349
原创 SQL数据过滤
基本所有的数据库都支持百分号通配符和下划线通配符,但只有很少的数据库支持方括号通配符。SELECT 字段列表 FROM 表名 WHERE 过滤条件;过滤数据:关键字WHERE。过滤条件一般由要过滤的。字段、操作符、限定值。
2022-11-26 11:26:33 286
原创 SQL 插入数据
插入整行字段 插入整行所有字段的数据插入部分字段 插入行的部分字段的数据一次插入多行 使用一条SQL语句插入多行数据借助其他结果集插入 根据其他SQL的执行结果集来插入数据克隆表 根据一张已存在的表生成一张新表
2022-11-12 15:17:28 2944 1
转载 百度搜索引擎变现策略指标体系
百度搜索引擎变现策略指标体系4 Replies下文就百度商业变现的指标体系进行概要描述,并针对一个类似于百度LBS系统的变现思路,阐述一个商业系统变现策略指标体系的建立过程。为什么需要商业变现策略指标体系一般情况下,一个互联网产品,或是一个移动端产品在发展前期,主要会关注流量及用户量的增长。当流量,用户量做到一定程度时,就会考虑商业变现。例如今日头条,美丽说,高德地图这样的产品现在都开始商业化变现。而要从变现效果,效率衡量整个系统,以及监控技术策略对系统变现的贡献时,就需要建立一套完善的策略指标体系
2020-12-25 20:44:22 1203
原创 GCD定时器实现
定时器类.h#import <Foundation/Foundation.h>@interface LYXTimer : NSObject+ (NSString *)execTask:(void(^)(void))task start:(NSTimeInterval)start interval:(NSTimeInterval)interval repeats:(BOOL)repeats async:(BOO
2020-07-27 23:28:48 307
原创 iOSTheme换肤使用说明
CTVITTheme-masterExampleTo run the example project, clone the repo, and run pod install from the Example directory first.RequirementsInstallationCTVITTheme-master is available through CocoaPods. To installit, simply add the following line to your Pod
2020-07-08 15:54:36 1216 1
转载 iOS 14新特性
iOS 14新特性文章目录iOS 14新特性✨ 1.Widgets(小组件)????2.App Library(App资源库)✨3. Picture in Picture(画中画)????4.Siri????5.Messages、Memoji✨6.App Clip(小程序)✨7.iOS 14 Developer beta 测试版✨:重点 ????:了解 ????:无关紧要✨ 1.Widgets(小组件)小组件这个功能其实原来就有的,只不过原来是在负一页面(首页左滑)中显示,在iOS 1
2020-06-23 17:08:46 1976
原创 LeetCode_232. 用栈实现队列
文章目录题目思路分析代码实现来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/implement-queue-using-stacks著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new
2020-06-21 16:19:12 155 1
原创 栈--浏览器前进后退应用
浏览器前进后退:当你依次浏览a,b,c,然后回到b,再浏览d,就只能查看a,b,d,了。原理: 利用两个栈A,B浏览新网页的时候,压入栈A,清空栈B前进,栈A获取栈B的栈顶元素,栈B弹栈,并压入栈A后退,栈B获取栈A的栈顶元素,栈A弹栈,并压入栈B栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素
2020-06-20 22:10:30 234
原创 iOS视频添加水印两种方式(不用到第三方框架)
1、视频加水印,并保存到沙盒当中//原视频sureasset,有外界传进来 AVURLAsset *asset = (AVURLAsset *)[self addPhotoTitleWithAsset:sureasset][0]; AVMutableVideoComposition *mainCompositionInst = [self addPhotoTitleWithAsset:sureasset][1]; sureasset = asset; AVAssetEx
2020-06-11 14:10:23 6127 2
原创 1. 两数之和
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。目 录题目解题思路实现代码白话解释题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target =.
2020-06-08 22:11:45 208
原创 141. 环形链表
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/linked-list-cycle著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。给定一个链表,判断链表中是否有环。目录题目思路分析 :`快慢指针`代码实现题目为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = .
2020-06-08 14:53:27 153
原创 206. 反转链表
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL头插法思路分析:头插法实现链表反转。定义一个新的newhead指针作为链表的头部指针,定义一个P指针遍历链表,将每次遍历到的元素插入到head指针后。(简单思路)具体实现如下代码实现/** * Definition for singly-linked list. * public class ListNode {
2020-06-07 20:10:57 165
原创 237. 删除链表中的节点
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点, 那么在调用了你的函数之后,该链表 应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], node = 1输出: [4,5,9]解释: 给定你
2020-06-07 09:29:25 175
原创 斐波那契数
通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。时间复杂度:O(n)
2020-05-16 23:26:25 192 1
原创 ⑦ 远程私有库资源依赖(xib文件、图片文件、音视频文件等)
远程私有库,里面有一些资源我们该怎么正确的引用呢? 下方给你详细的描述如果是xib文件错误的引用会导致崩溃,如下方举例因为现在的mainBundle不是我们之前的宿主工程了,所以路径也得替换。接下来我们看一下我们的资源放在了哪里然后修改成正确的路径如果是组件里面的图片资源 处理首先要把资源是放到远程组件的assets文件夹里面的,这个文件夹和clas...
2020-05-03 22:35:12 315
原创 ⑥ 远程私有库依赖+升级
远程私有库操作流程https://blog.csdn.net/liyunxiangrxm/article/details/105376693如果我们要在私有库的Classes增加代码,或者修改代码,那么我们需要怎么处理,下面就说到私有库升级第一步、代码修改然后推到远程库把我们要增加的代码拖到Classes文件夹里面。然后cd 进 example示例项目中,然后pod install,...
2020-04-08 18:35:39 208
原创 ⑤ 远程私有库
上面一节介绍了本地私有库https://blog.csdn.net/liyunxiangrxm/article/details/105289053本地私有库有很多存在的问题:1、需要主动指明路径,如果移动工程文件夹路径,那么podfile中的路径需要修改。2、版本升级不好维护,没有指明tag。3、无法多人合作开发所以,就需要远程私有库:首先,看远程私有库原理图:远程私有库流程:...
2020-04-07 23:25:21 402
shenduguanli深度管理
2022-03-01
CTO说-完整书签版
2019-05-08
iOS组件与框架 iOS SDK高级特性剖析
2017-12-29
《iOS沙龙群求职防骗指南》与《资深HR告诉你到底怎么写一份好的简历》----黑码哥
2017-12-29
iOS应用逆向工程(第2版) 黑码哥
2017-12-29
图解TCP_IP_第5版
2017-12-29
资深HR告诉你到底怎么写一份好的简历--主要适用于程序员
2017-12-29
如何用 FFmpeg 编写一个简单播放器详 细步骤介绍--FFmpeg中文版
2017-12-29
OC编程之道
2017-12-29
信息系统监理师考试真题以及讲解汇总---信息系统监理师教程(柳纯录主编)二合一
2017-12-29
信息系统监理师考试真题以及讲解汇总
2017-12-29
The Swift Programming Language(Swift3.0中文版)
2017-12-27
强大的工具
2017-12-27
NTFS 驱动程序
2017-12-27
信息系统项目管理师教程(第2版)pdf高清版与信管网信息系统项目管理师论文精编(两本书)
2017-12-26
高项要点--10大管理知识域47个过程及工具技术
2017-12-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人