- 博客(9)
- 收藏
- 关注
原创 关于NSString、NSArray、NSDictionary作为属性的时候为什么要用copy,而非strong
关于NSString、NSArray、NSDictionary作为属性的时候为什么要用copy,而非strong
2023-04-04 21:51:12
248
原创 ios 引用fluttermodule dyld: Library not loaded: @rpath/App.framework/App
上周在iOS原生和flutter混合开发的时候突然之间真机调试app启动之后crash 并且debug区域报错:dyld: Library not loaded: @rpath/App.framework/App遇到问题首先上网各种查找,最开始怀疑是app.framework找不到,但是在flutter项目中根据路径在flutter工程中.ios/Flutter/App.framework,可以找到,但是真机运行就是闪退很无奈,怀疑是.ios 的工程有问题,删掉了.ios 文件重新生成依然有问题,pod升
2022-02-21 18:40:34
2650
原创 H5通过Universal Link(通用链接)唤起app
问题:之前使用的通过网页打开app都是通过URL scheme打开app,但是我们在开发的过程中遇到过一个奇怪问题,本地的debug的时候都是可以正常打开的,但是打成安装包之后URL scheme没有起作用,解压了安装包,里面也是有配置的URL scheme,于是决定换Universal Link的方法去完成本次续期,当然在使用Universal Link过程中也遇到过很多坑,下面就简单介绍下:Universal Link简介:Universal Link是苹果在WWDC 2015上提出的iOS 9的新
2022-01-13 19:20:14
4318
原创 swift之代理
swift之代理详解和使用前言代理是一种设计模式。它允许类(Swift中的结构体)将自身负责的功能委托给其他的类型的实例示例。多用于反向传值问题等应用反向传值应用,这个和objective_c的写法类似,如果熟悉oc的同学对此不会陌生1.创建ViewControllerprotocol SecondDelegate:NSObjectProtocol { func saveName(_ nameStr: String)}class SecondViewController: UIVie
2021-10-14 19:32:37
1093
原创 自定义自旋锁
自旋锁原理如果共享数据已经有其他线程加锁了,线程会以死循环的方式等待锁,一旦被访问的资源被解锁,则等待资源的线程会立即执行。自旋锁的主要特征1.不停的去获取锁的状态2.等待不休眠2.锁释放立即获取到锁,去执行具体代码实现:/** 创建自旋锁的结构体 flag 标记锁的状态 */struct XZCSpinLock { var flag = 0 mutating func lock() { while (self.setFlag() != 0) {
2021-03-18 17:09:17
106
原创 ios开发之离屏渲染
前言在介绍离屏渲染之前,首先理解下这个概念,什么是离屏渲染,为什么会出现离屏渲染,以及如何避免离屏渲染。GPU屏幕渲染有两种方式:(1)On-Screen Rendering (当前屏幕渲染)指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区进行。(2)Off-Screen Rendering (离屏渲染)指的是在GPU在当前屏幕缓冲区以外开辟一个缓冲区进行渲染操作。当前屏幕渲染不需要额外创建新的缓存,也不需要开启新的上下文,相对于离屏渲染性能更好。但是受当前屏幕渲染的局限因素限制(只有自身上
2021-03-13 00:14:31
243
原创 swift中throw和rethrow总结
swift中throw和rethrow总结!1、throw异常,表示这个函数可能会抛出异常,不管作为参数的闭包是否抛出异常。2、rethrow异常,表示这个函数本身不会抛出异常,但是假设作为参数的闭包抛出了异常,那么他会把异常继续抛上去。比如:3、不抛出异常,表示这个函数会处理参数闭包的一样,或者不正确的闭包进行运算。...
2021-03-12 23:35:55
446
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人