- 博客(32)
- 资源 (2)
- 收藏
- 关注
原创 Swiftui:使用PreferenceKey联动改变控件的大小(GeometryReader)
Swiftui:使用PreferenceKey联动改变控件的大小(GeometryReader)
2022-08-13 17:36:58 498
原创 高频面试算法:leetCode算法(swift实现二)
1、算法一:删除重复的元素///MARK: remove dulplicate///给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。///由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。///将最终结果插入 nums 的前 k 个位置后返回 k 。///不要使..
2022-02-27 20:32:48 2615
原创 高频面试算法:leetCode算法(swift实现一)
1、算法一:给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。a、例如:[2,5,3,7,4],k=2;结果为:[7,4,1,5,3]///inout在swift中表示传地址进入func rotate( arr:inout [Int],k:Int){ for _ in 0..<k{ let lastV = arr[arr.count-1] for index in 0..<arr.count-1{ let last =..
2022-02-24 14:12:18 199
原创 iOS(swift)UILable简单方式实现字体投影和颜色渐变
1、代码实现 ///颜色渐变 func textLabel(){ let label = UILabel() self.view.addSubview(label) label.font = UIFont.systemFont(ofSize: 30) label.frame = CGRect(x: 100, y: 300, width: 200, height: 50) let text = "文字添加投影.
2022-02-24 10:55:05 3316
原创 iOS 未安装微信,审核被拒绝的解决方式
iOS swift 微信App授权登录/网页版授权登录一、向微信开放平台申请创建应用1、申请(微信开放后台)链接:https://open.weixin.qq.com/cgi-bin/frame?t=home/app_tmpl&lang=zh_CN接入指南:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html二、接入后初始化并进行授权登录的操作1、引入头文件,比如在桥接
2021-11-21 18:42:17 2666
原创 iOS 内存管理知识梳理
iOS 内存管理知识梳理一、内存泄漏1、检测方式:Memory Leaks、Alloctions、Analyse、Debug Memory Graph、MLeaksFinder(前四种都比较麻烦,需要不断地调试运行,第五种是腾讯阅读团队出品,效果好一些)2、泄漏类型:a、Leak Memory这种是忘记Release操作所泄露的内存;b、Abandon Memory这种是循环引用,无法释放掉的内存二、MRC下重写Setter/Getter1、重写Setter-(void)setBrand
2021-08-28 15:29:39 267
原创 iOS 多线程知识梳理
iOS 多线程知识梳理一、进程和线程1、进程:是一个具有一定独立功能的程序关于某次数据集合的一次运动活动,它是操作系统分配资源的基本单元;是指在系统中正在运行的一个程序,一段程序执行的过程,可以理解为手机上的一个app;进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内,拥有独立运行的全部资源。2、线程:程序执行流的最小单元,线程是进程中的一个实体;一个进程要想执行任务,必须至少有一条线程,应用程序启动的时候,系统会默认开启一条线程,也就是主线程。进程和线程的关系:线程是进程的执行单元,
2021-08-16 22:15:50 243
原创 iOS 数据结构与算法
iOS 数据结构与算法一、数据结构1、集合结构:无序、无重复的元素结构,可看成特殊的数组(没有顺序,并且数据元素不重复)2、线性结构:a、集合中必然存在一个唯一的一个第一元素;b、集合中必然存在一个唯一的一个最后元素c、除了最后一个元素之外,其他元素均有唯一的后继d、除了第一个元素之外,其他元素均有唯一的前驱3、树形结构:元素存在一对多的树形关系的数据结构,是重要的非线性数据结构4、图形结构:节点的前驱和后继的个数没有限制,类似这样的结构称之为图形数据结构二、数据
2021-07-04 18:38:07 949
原创 iOS UI相关知识梳理
iOS UI相关知识梳理一、UIView和CALayerUIView为CALayer提供内容,以及处理触摸事件,参与响应链CALayer负责显示内容二、事件传递和响应链如果事件一直传递到UIApplication还是没处理,那么会忽略掉- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;- (UIView *)pointInside:(CGPoint)point withEvent:(UIEvent *)event
2021-05-29 23:47:55 306 1
原创 iOS 设计模式
iOS 设计模式一、编程中的六大设计原则1、单一职责原则:一个类只负责做一件事比如:CALayer:动画和视图的展示;UIView:事件传递和视图响应2、开闭原则:对修改关闭,对扩展开放;考虑扩展性,不在原来的基础上来回修改3、接口隔离原则:使用多个协议,而不是一个庞大臃肿的协议(eg:UITableViewDataSource、UITableViewDelegate)4、依赖倒置原则:抽象不依赖于具体实现、具体实现可依赖于抽象;调用接口感觉不到内部实现5、里氏替换原则:父
2021-05-17 22:04:15 166
原创 iOS 网络知识
iOS 网络相关一、http协议1、描述是一种详细规定了浏览器和万维网服务器之间互相通信的规则,是传送万维网文档的数据传送协议。http是基于tcp的应用层协议。2、请求报文//例如//请求行:POST link/test.html HTTP/1.1//请求头部:Host:www.user.com//表明该对象所在的主机Content-Type:application/x-www-form-urlencoded//内容类型Connection:Keep-Alive//告
2021-04-06 22:55:57 208
原创 iOS原生Socket编程
iOS原生Socket编程一、Socket连接原理1、原理流程图二、客户端编程代码1、初始化准备数据//引入头文件#import <sys/socket.h>#import <netinet/in.h>#import <arpa/inet.h>//htons将一个无符号整型数据转为网络字节顺序,不同cpu是不同的顺序#define SOCKET_PORT htons(8040)//ip地址:以本地为例子#define IP_ADRR "1
2021-03-25 19:15:27 371
原创 iOS 性能优化知识梳理
iOS 性能优化知识梳理1、概述在性能优化中,最具参考的属性是FPS(Frames Per Second),其实就是屏幕刷新频率。苹果推荐iPhone的刷新频率是每秒60次,即每秒钟刷新屏幕60次。该属性在静态页面值为0,不具有参考价值,在动画或者滑动的时候,FPS才具有参考价值,FPS的值大小反应页面的流畅程度,当低于45时页面表现得比较卡顿。2、图层混合和检测图层混合每一个layer是一个纹理,所有的纹理都以某种方式堆叠在其顶部。一个屏幕像素点,GPU需要算出怎么混合这些纹理来获得像素
2021-03-11 21:01:19 1296 1
原创 Runtime知识梳理
iOS Runtime知识梳理源码可在这里查看:https://opensource.apple.com/tarballs/objc4/一、isa的理解1、对象指向指向它的类对象,从而找到对象的方法。对象、类、元类的关系如下图所示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iZehn30A-2、类型a、纯指针:指向内存地址b、NON_POINTER_ISA:指向内存地址和一些其他信息二、class_rw_t和class_ro_t的理解1、
2021-02-25 10:30:38 175
原创 Runloop知识梳理
Runloop知识梳理源码可在这里查看:https://opensource.apple.com/tarballs/CF/1、NSTimerNSTimer解析:NSTimer其实是CFRunloopTimerRef,他们之间是对象桥接(toll-free bridged)的关系。一个timer添加至runloop中,runloop会为其注册好重复时间点的事件,比如12:00,12:10,12:20等。但是,runloop为了节省资源,并不会在准确的时间点回调timer事件,tolerance属
2021-02-18 22:55:35 295
原创 OpenGL ES加载纹理(GLSL)
iOS OpenGL ES加载纹理(GLSL)一、准备工作1、创建UIViewController控制器2、创建UIView3、将创建的UIView添加至UIViewController中4、下面的方法是在创建的UIView中调用(依次调用二中2-7的方法)5、准备一张图片(纹理)6、UIView文件中的变量定义//导入框架:#import <OpenGLES/ES2/gl.h>@property (nonatomic,strong) CAEAGLLayer *mEaglL
2021-02-12 23:49:14 548
原创 OpenGL ES加载纹理
iOS OpenGL ES加载纹理(GLKit)1、准备工作创建UIViewController文件并继承GLKViewController遵守协议GLKViewDelegate实现协议方法**- (void)glkView:(GLKView )view drawInRect:(CGRect)rect*定义属性:*@property (nonatomic,strong) GLKBaseEffect mEffect;2、初始化上下文对象和被绘制对象参数的设置- (void)setUpCont
2021-02-08 11:57:11 274
原创 iOS-Block知识梳理
Block知识梳理1、什么是block将函数和上下文封装起来的对象/*** 比如**/void (^block)(NSInteger) = ^(NSInteger age){ NSLog(@"%zd",age);};block(18);在ViewController.m中编写了上面的block,然后使用(xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc 文件名[这里的文件名是ViewController.m
2021-02-06 16:58:58 176
原创 一台电脑(window操作系统)模拟zookeeper+activemq集群,专业术语称为伪集群模式
zookeeper下载和配置1、首先在网上下载zookeeper-3.4.8.tar.gz软件压缩包 下载网址http://archive.apache.org/dist/zookeeper/2、解压zookeeper-3.4.8.tar.gz,并复制3份,类似如下3、在\zookeeper1\conf\文件下创建zoo.cfg文件,在\zookeeper1目录下新建d...
2018-08-24 17:30:06 635
原创 详细的window环境下循环运行某个程序的脚本代码以及步骤
以运行app_hmini.exe程序为例 1、文件目录:2、步骤(1)新建sleep.vbs文件(文件名称不一定是sleep,但是后缀名必须是.vbs) 文件这句代码:WScript.sleep 5000 (这里设置每隔5s运行一个程序) 保存后将文件复制到C:\Windows\System32目录下(2)新建xh....
2018-08-24 10:59:33 3822
原创 问卷星调查问卷自动填写问卷的js
以谷歌浏览器为例子1、打开浏览器2、访问问卷网址3、按键盘F124、点击sources,然后new snippet5、然后添加下面的js6、点击倒三角(或者ctr+enter)//随机选择答案的函数function random(t){ var num = Math.random()*t; num = Math.floor(num); return num;}//获取全部问题va...
2018-04-10 17:51:54 17648 6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人