自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (4)
  • 收藏
  • 关注

原创 【无标题】

在HarmonyOS有序公共事件中,高优先级订阅者可修改公共事件内容或处理结果,但不能终止公共事件处理。HarmonyOS的方舟开发框架包含基于TS扩展的类Web开发范式和基于JS扩展的声明式开发范式。HarmonyOS跨端迁移和多端协同,是使用不同的FA/PA,在不同设备间运行来实现完整的业务。在HarmonyOS中发布带权限公共事件,发布者首先要在config.json中申请所需的权限。在HarmonyOS流转中,如果对端设备不支持流转任务管理服务,则不能进行跨端迁移。

2024-01-19 18:23:06 379

原创 JavaScript中我对原型的理解

当我们访问一个对象的方法或者成员时会首先在当前对象的对象原型中查找,若没有则会沿着原型链网上查找直到找到为止,若延寻到Object类还没找到时则返回undefined.原型对象函数里面的this指向的是原型所属的对象模型实例或者函数实例。总结继承的俩种方式 1、通过原型链 2、通过call方法。//this指向父构造函数的对象实例。//this指向了子构造函数的实例。console.log('孩子要考试');借用父构造函数继承属性。实现了成员的继承效果。实现了方法的继承效果。

2023-08-31 20:51:48 80

原创 Vue实现双向绑定原理

watcher订阅者在这期间起到了Observer和Compiler桥梁作用。3、dep.notice时自身更新并触发compile中绑定的回调。1、在自身实例化时往属性订阅器里添加自己。2、自身必须有一个update方法。

2023-05-13 14:03:28 123

原创 Vue实现组件间通信

/这是组件A发送的消息!在子组件中通过$emit发送event第一个参数是事件名,第二个是消息内容,在父组件中通过v-on响应事件实现事件通信。在子组件中通过$emit发送事件,在父组件的mounted钩子函数中获取到对应dom元素通过$on监听事件。

2023-05-12 12:47:19 111

原创 使用最新的sdk跑旧的flutter项目遇到的坑总结

依然报错,思来想去同样的三方包别人没报错我报错了,于是一个个的删除引用试试,还是不管用问了同事说是兼容性问题,第三方包对sdk版本有要求,于是上pub.dev官网查看版本记录选择最优的版本,发现接踵而至的是不同的第三方包都在报错,最后发现问题是我使用的flutter sdk不兼容,于是上。oh my god又报了下面这个错误,我删除了iOS的pod和pod.lock 顺便将pod支持iOS系统改成了11。重新pod install了,然后将报错的包依次使用了最新版本可以了,跑成功了欧耶记录一下。

2023-03-18 22:17:36 1661 1

原创 dart语言学习笔记

第一个参数是数组长度,第二个参数是数组默认填充内容等价于创建了一个长度为2的数组 ["填充内容","填充内容"];Person():age=18,name="Tom"{ // 初始化对象之前赋值默认参数。var l1 = ['苹果','香蕉','西瓜'];//数组包装,返回一个新数组。// printPerson2("张三", 28, "huang");List li = ['苹果','香蕉','番茄',"莉"];

2023-02-15 10:27:04 166

原创 详解NSProxy

和NSObject一样NSProxy也是一个基类,只不过它是抽象的,不能创建实例,只能继承,一般需要中间对象解除循环引用时才会使用它,它只能用作消息转发,而且它只实现了消息转发的最后一步,消息重定向,使用的时候需要重写methodSignatureForSelector和forwardInvocation这俩个方法

2022-12-06 16:57:23 139

原创 我对网络的理解

如果把信息比作一个人,人出门肯定要穿衣服撒,那么从应用层,传输层,网络层,链路层依次对应的是内衣,衬衫,马甲和外套,到达目的地后拖下衣服的顺序从外到内,才能真正看清传递过来的信息,以达到通信的目的。每个层级会规定对应的协议,1、我们熟知的http(超文本传输协议)就是属于应用层协议它提供的是应用之间的通信,TCP/IP协议族内预存了各类通用的应用服务,比如FTP和DNS2、TCP传输层协议提供的是计算机之间的通信,很有名的就是TCP(传输控制协议)和UDP(用户数据报协议)3、IP网络层协议规定了网络上流动

2022-12-06 11:24:55 150

原创 动态库和静态库的区别

静态库:这类库的名字一般是libxxx.a;1、利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,2、即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,3、因为如果静态函数库改变了,那么你的程序必须重新编译。动态库:这类库的名字一般是libxxx.so;相对于静态函数库,1、动态函数库在编译的时候 并没有被编译进目标代码中,你的程序执行到相关函数时才调用该函数库里的相应函数,因此动态函数库所产生的可执

2022-12-05 15:58:21 2569

原创 谈谈我对iOS app从编译到完全启动的流程的理解

四、链接:这一步操作就是将上述生成的目标文件和动态库链接起来最终生成可执行文件,可执行文件的类型是Mach-O类型,iOS和mac电脑的可执行文件都是这种类型,苹果手机的指令集是ARM,模拟器的一般是X86_64,至此编译流程结束。2、dyld(动态链接器)的装载过程,这个过程中dyld将所有的可执行文件进行装载,同时递归加载所有依赖的动态库,当dyld将所有的可执行文件和动态库装载完毕后会通知runtime执行下一步。二、代码解析:包括词法分析,语法分析,静态分析,生成中间代码和优化。

2022-11-11 15:23:36 703

原创 真机调试启动长时间挂起

因为我的iphone11系统版本最高即是导入了真机调试包也无法看到堆栈信息,所以我使用了8p最近在真机调试的过程中,突然出现了在 App 启动的时候在8P上面长时间挂起卡顿现象,每次编译运行都会卡在启动界面近乎 1 分钟的情况,内心崩溃!

2022-11-10 09:28:26 169

原创 swiftUI自定义Environment的Key

2、把他作为 Environment 的一个键 (EnvironmentKey),这样用到这个 key 就可以获取它的默认值。4、就这样,headerRefreshData 变成了 Environment 的 key,我们可以通过声明。3、如果要改变或者修饰这个值,我们要扩写 EnvironmentValues,实现set,get方法。RefreshData 来获取它的值,通过在 View 中。1、创建一个结构体作为要共享的值。

2022-11-08 16:43:24 968

原创 关于swiftUI和UIKit混用

3、在CustomView中定义一个class实现UITableViewDelegate和UITableViewDataSource协议。思路无非就是自定义一个结构体view实现UIViewRepresentable协议,然后就可以作为一个swiftUI组件进行调用了。2、在结构体中定义makeUIView和updateUIView方法,在makeUIView中返回UIKit视图。4、在结构体中添加makeCoordinator方法返回代理。6、在swiftUI组件中调用CustomView就行。

2022-11-07 10:49:34 545

原创 关于swiftUI和UIKit混用

3、在CustomView中定义一个class实现UITableViewDelegate和UITableViewDataSource协议。思路无非就是自定义一个结构体view实现UIViewRepresentable协议,然后就可以作为一个swiftUI组件进行调用了。2、在结构体中定义makeUIView和updateUIView方法,在makeUIView中返回UIKit视图。4、在结构体中添加makeCoordinator方法返回代理。6、在swiftUI组件中调用CustomView就行。

2022-11-07 10:47:00 1593

原创 关于cell重用机制细节

1、dequeueReuseableCellWithIdentifier:不必向tableView注册cell的Identifier,但需要判断获取的cell是否为nil,如果为nil,则调用UITableViewCell(style:Style.default, reuseIdentifier: "cell")重新创建一个,或者是xib类型时在xib文件中定义。创建cell时若使用nib,使用 registerNib: 注册,dequeue时会调用 cell 的 -(void)awakeFromNib。

2022-11-07 10:19:27 87

原创 iOS设备各种唯一标识说明

IDFA, Identifier For Advertising, 一个跟device相关的唯一标识符,但是可以通过1、设置 -> 通用 -> 还原 -> 抹掉所有内容和设置 重置IDFA 2、限制广告追踪开关切换会导致IDFA变化。UUID,Universally Unique IDentifier,在应用程序使用生命期间,这个 UUID保持不变。UDID(Unique Device Identifier, 这个是跟手机绑定的,用户不能更改),但是Apple后来禁止苹果应用获取UDID。

2022-11-06 17:00:32 1208

原创 创建私有组件库后如何更新私有组件库

1、更新pod版本 首先修改podspec文件中的版本号 然后在库代码添加tag并推送到远程 没做就会报warning: Could not find remote branch 0.0.2 to clone.] The repo `Calendar` at `../../../.cocoapods/repos/Calendar` is not clean 那就先删除本地pod版本库重新添加。4、在终端中敲入pod update 更新本地pod repo。5,在项目中配置source。

2022-11-03 10:54:21 899

原创 创建在mac电脑本地搭建nginx,并模拟打包发布前端构建包

mac本地搭建nginx服务

2022-10-18 10:51:23 1146

原创 如何创建基于webpack的vue项目和基于vite的vue项目及将现有vue项目变更为基于vite项目

新手创建vue项目

2022-10-16 21:53:05 478

原创 关于音视频播放

自己写的 播放器sdk:AVPlayer类初始化 首先设置url 如果是在线播放即播放链接 本地播放即本地路径( [NSURLfileURLWithPath:[[NSBundlemainBundle]pathForResource:@"sound"ofType:@"m4a"]])这个方法获取,还可以设置block属性 方便在合适的时机调用soundsPlayerVi

2017-08-18 11:50:48 283

转载 cocoapods出现的问题

5060418222578684关于使用cocoaPods,import导入时第三方库头文件没有提示问题的解决办法标签: iOS开发cocoapods第三方库头文件联想2016-06-30 09:09 2535人阅读 评论(0) 收藏 举报分类: iOS开发技巧(1)  版权声明:本文为博主原创文章,未经博主允许不得转载。估计有很多朋友在使用Xcode在项目中导入第三方库时

2017-04-14 13:07:39 195

转载 git版本控制器上手超简单

创建本地代码库(init)本地代码库,其实就是我们的代码目录(本地仓库),如果非要区别普通代码目录和git仓库目录,那就是基于git的代码目录里面会多一个.git的目录,这个目录一般是不可见的。如何将一个普通代码目录变成git工作目录,其实很简单。我们可以使用cmd、git bash或任何一个命令行工具,进入工作目录,然后运行下面这行代码就可以了:git init当本地仓

2017-03-23 19:26:45 255

RXAddPhotoView

自定义collectionView可以上传图片和视频,实现代理方法可以在相应的控制器里 实时上传

2017-08-19

XWDragCellColletionView

自定义collectionView 可拖拽重新排版布局

2017-08-19

WTPageController

自定义分页控制器

2017-08-19

CLPlayerDemo

自己写的 播放器sdk: AVPlayer类 初始化 首先设置url 如果是在线播放即播放链接 本地播放即本地路径( [NSURLfileURLWithPath:[[NSBundlemainBundle]pathForResource:@"sound"ofType:@"m4a"]] )这个方法获取,还可以设置block属性 方便在合适的时机调用 soundsPlayerView同上

2017-08-19

空空如也

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

TA关注的人

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