自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(182)
  • 资源 (7)
  • 问答 (2)
  • 收藏
  • 关注

原创 Flutter - 环境配置提示 cmdline-tools component is missing

一般这个命令操作我们用不到,但是就是看着这个错误提示不爽,所以给它解决掉。

2024-04-11 17:17:01 358

原创 鸿蒙开发 - 状态管理之@Observed和@ObjectLink

和@Observed被@Observed装饰的类,可以被观察到属性的变化;子组件中装饰器装饰的状态变量用于接收@Observed装饰的类的实例,和父组件中对应的状态变量建立双向数据绑定。这个实例可以是数组中的被@Observed装饰的项,或者是中的属性,这个属性同样也需要被@Observed装饰。单独使用@Observed是没有任何作用的,需要搭配或者@Prop使用。

2023-12-25 14:59:44 1188

原创 鸿蒙开发 - 状态管理之@Provide和@Consume

Provide装饰的状态变量自动对其所有后代组件可用,即该变量被“provide”给他的后代组件。由此可见,@Provide的方便之处在于,开发者不需要多次在组件之间传递变量。后代通过使用@Consume去获取@Provide提供的变量,建立在@Provide和@Consume之间的双向数据同步,与不同的是,前者可以在多层级的父子组件之间传递。@Provide和@Consume可以通过相同的变量名或者相同的变量别名绑定,变量类型必须相同。// 通过相同的变量名绑定。

2023-12-21 15:48:04 1061

原创 鸿蒙开发 - 状态管理之@Link

Link装饰的变量与其父组件中的数据源共享相同的值。

2023-12-21 15:26:20 1128

原创 鸿蒙开发 - 状态管理之@Prop

Prop@Prop变量允许在本地修改,但修改后的变化不会同步回父组件。当父组件中的数据源更改时,与之相关的@Prop装饰的变量都会自动更新。如果子组件已经在本地修改了@Prop装饰的相关变量值,而在父组件中对应的@State装饰的变量被修改后,子组件本地修改的@Prop装饰的相关变量值将被覆盖。

2023-12-21 14:55:08 935

原创 鸿蒙开发 - 状态管理之@State

State装饰的变量,与声明式范式中的其他被装饰变量一样,是私有的,只能从组件内部访问,在声明时必须指定其类型和本地初始化。初始化也可选择使用命名参数机制从父组件完成初始化。@State@State装饰的变量与子组件中的@Prop装饰变量之间建立单向数据同步,与@Link装饰变量之间建立双向数据同步。@State装饰的变量生命周期与其所属自定义组件的生命周期相同。

2023-12-21 14:23:15 937

原创 鸿蒙开发 - Number和number、String和string等的区别

中的基本数据类型之一,表示任意数字。它包括整数、浮点数、负数等。在声明变量时,可以使用。只是一个普通的数字类型。在实际使用中,通常更推荐使用。作为变量的类型,因为它更轻量级且性能更好。的超集,所以对于基本数据类型使用的是。来创建一个Number对象。我们知道鸿蒙开发使用的语言时。中的一个全局对象,可以使用。对象具有一些特定的方法,而。关键字来指定变量的类型。是一个基本数据类型。

2023-12-19 14:10:03 897

原创 JavaScript - Symbol使用

值作为对象属性时,不能使用点运算符,因为点运算符后面接的是字符串。如果存在一种机制,保证每个属性的名字都是独一无二的,这样就能够防止属性的冲突了。值都是不同的,这就意味着,当一个对象由模块构成时,就能够发防止莫一个键被不小心改写或覆盖。它接受一个字符串作为参数,然后搜索有没有以该参数作为名称的。后,对象中的属性名现在可以有两种,一种是本来就有的字符串,另一种则是新增的。值,否则就新建并返回一个以该字符串为名称的。但是,它也不是私有属性,有一个。作为属性名,该属性不会出现在。方法,可以获取指定对象的所有。

2023-12-18 13:57:46 359

原创 Java - Collectors.toMap() 使用

所以除非你能确保Key不会出现重复(这个很难保证),否则就需要传入 mergeFunction 参数,确定value合并策略。这里使用传入 mergeFunction 参数,当 Key 冲突时,调用的合并方法。当Key出现重时如果想使用新值使用。3.需考虑是否有value为null情况。1.需要考虑key是否为null情况;如果我们将数据改下,再加一条数据。2.需考虑是否有key重复情况;,如果想使用老值使用。

2023-12-13 10:47:34 514

原创 鸿蒙开发 - ohpm安装第三方库

前端开发难免使用第三方库,鸿蒙亦是如此,在使用 DevEco Studio 开发工具时,如何引入第三方库呢?

2023-12-12 22:32:21 3727

原创 鸿蒙开发 - Scroll组件

是指在不同尺寸设备下,当页面的内容超出屏幕大小而无法完全显示时,可以通过滚动条进行拖动展示。这种方法适用于线性布局中内容无法一屏展示的场景。通常有以下两种实现方式。1.在List中添加滚动条:当List子项过多一屏放不下时,可以将每一项子元素放置在不同的组件中,通过滚动条进行拖动展示。可以通过scrollBar属性设置滚动条的常驻状态,edgeEffect属性设置拖动到内容最末端的回弹效果。2.使用Scroll组件:在线性布局中,开发者可以进行垂直方向或者水平方向的布局。当一屏无法完全显示时,可以在。

2023-12-12 15:43:43 1524

原创 鸿蒙4.0开发 - DevEco Studio如何使用Previewer窗口预览器报错

应用开发过程中,通过使用预览器,可以查看应用的UI效果,方便开发者实时查看应用的运行效果,随时调整代码。布局文件才能打开Previewer,查看相应的UI界面。我的解决方法当然就是双击选中。编辑界面的右上角部分,竖排文字的第二个选项卡则是。文件,再点击Previewer,则成功加载。在鸿蒙4.0中,只有。原因是没有选中相应的。

2023-12-12 10:12:19 2703 2

原创 iOS 防截屏方法(一)

代理不让键盘弹起,但是键盘不弹起的同时,子视图的事件也被拦截,导致想在防截屏的区域处理事件就做不到了。,我们知道UITextField是属于输入框,被点击时会弹起键盘,我们当然可以通过。状态 ,我们只要将其设置成。可以接收处理事件,不会影响。上面提到最主要的一点。的点击事件和滑动事件。

2023-12-10 11:35:30 1425

原创 Java - window系统快捷键大全

Ctrl + Shift + Alt 快捷键 介绍。Ctrl + Shift 快捷键 介绍。Alt + Shift 快捷键 介绍。Ctrl + Alt 快捷键 介绍。Shift 快捷键 介绍。Ctrl 快捷键 介绍。Alt 快捷键 介绍。

2023-11-01 15:13:32 134

原创 Python - PyQt6、QDesigner、pyuic5-tool 安装使用

Python 开发可视化界面可以使用原生的tkinter,但是原生框架使用起来颇为不方便,所以最流行的还是QTUI框架,QT是使用C++语言开发,Python 想使用需要对其进行封装,所以就出现了PyQt框架,这个框架使用极其方便,而且可以多端运行。

2023-09-08 20:56:46 1661

原创 Mac brew -v 报错 fatal: detected dubious ownership in repository

【代码】Mac brew -v 报错 fatal: detected dubious ownership in repository。

2023-09-08 15:08:36 986

原创 iOS 其他APP在“其它应用中打开”时显示自己的APP

需求如下:在其他APP打开文件,选择其他更多方式打开,然后能够看到自己的APP。

2023-08-26 00:21:12 192

原创 iOS 系统分享到自己app的实践

首先要配置相同的 App Groups,必须group.开头NSUserDefaults *de = [[NSUserDefaults alloc]initWithSuiteName:@"group.(跟上面app groups一致)"];宿主app 获取数据NSUserDefaults *de = [[NSUserDefaults alloc]initWithSuiteName:@"group.(跟上面app groups一致)"];

2023-08-25 23:54:45 270

原创 Python python文件打包exe文件

这里要替换成你自己文件的路径。的同级目录下生成一个名为。是我创建的一个简单的。的文件夹,里面有一个。

2023-08-13 12:02:19 164

原创 导入示例工程出现error: failed to start ability. Error while Launching activity错误的解决办法

时不能被其他应用调用,所以出现错误。

2023-08-11 14:40:52 671

原创 ERROR: Could not build wheels for lxml, which is required to install pyproject.toml-based projects

Python安装lxml如果不行,按照下面执行:(1)下python版本对应.whl(2)搜索包名(想安装什么模块就搜自己需要的):(3)找到对应版本然后点击:(4) 点击下载:(5)下载对应whl文件最后,如果还不能解决,可以到这里找找解决办法。

2023-08-08 10:58:31 15844 3

原创 Python 获取随机数

作用:随机生成[a, b]范围内一个整数,如果指定step,step作为步长会进一步限制[a,b]的范围,比如randrange(10, 20, 2)表示生成[10, 20)范围内的随机偶数。作用:产生[a, b]范围内一个随机浮点数。作用:打乱一个数组的顺序,返回值为None。作用:随机生成一个[0,1)之间的浮点数。作用:随机生成[a, b]范围内一个整数。作用:从数组中随机选取一个数据。作用:从数组中随机选取n个数据。

2023-08-07 15:10:57 1005

原创 Python 网络请求之requests

【代码】Python 网络请求之requests。

2023-08-05 22:55:53 282

原创 Python 向Excel写数据

例如6列,col= (‘姓名’,‘性别’,‘年龄’,‘地址’,‘电话’,‘职位’)5、用一个for循环将col元组的元组值(也就是列属性名)写入到sheet表单中。这里调用的是write方法,该方法的第一个参数是行、第二个参数是列、第三个当然就是col元组值。因为这里写进去的是列名,所以都是在第一行。

2023-08-05 22:38:31 2232 1

原创 iOS 搭建组件化私有库

当你需要新建组件的时候,就在这里开始,如果是想修改原有的库,就可以直接在之前的组件仓库里面修改即可,可以查看步骤7。步骤1是在没有索引库的情况下或者是新增索引的时候才需要用到,如果不需要增加索引请查看步骤3(创建基础组件库)1.所有验证通过之后,要将spec文件推送到最开始创建的私有库索引库当中。最后,项目本地组件库创建完成后会自动打开项目。首先在码云上建立一个私有库索引,起名为。其他属性根据需要自行配置。:私有代码仓库的源地址。:私有代码仓库的地址。随便创建一个项目名为。分支,这里先创建一个。

2023-08-01 15:55:45 1349

原创 iOS - 解压ipa包中的Assert.car文件

项目在Archive打包后,生成ipa包将xxx.ipa文件修改为zip后缀即xxx.zip,然后再双击解压,会生成一个Payload文件夹,里面一个文件 如下图:然后显示改文件的包内容:解压Assets.car。

2023-07-30 00:40:32 2193

原创 iOS - 检测项目中无用类和无用图片

注意:这里搜索出来的未引用的文件,也最好不要直接删除,需要到项目中再三确认,如果是多人开发的项目还需要和同事确认,该文件是否真的不需要了,最后确认后再删除文件。注意:这里被搜索出来的结果不要直接删,最好是在项目找到对应的图片资源,再三确认是否真的没有在引用,然后在项目中删除图片。:当我们删除检索到无用文件时,可能会释放出来一些无引用的图片,所以再到。, 搜索结果左侧框中是是用的文件,右侧框中是未使用的文件。中检索,可能会多出来一些无引用的图片。语言实现,外部调用不需要导入该文件的。1.单元测试的文件;

2023-07-29 23:55:26 1134

原创 Flutter 状态管理框架 Provider 和 Get 分析

通过本文,我向大家介绍了状态管理的必要性、它解决了Flutter开发中的哪些问题以及是如何解决的,与此同时,我也为大家总结了在实践中常见的问题等,看到这里你可能还会有些疑惑,到底是否需要使用状态管理?在我看来,框架是为了解决问题而存在。所以这取决于你是否也在经历一开始提出的那些问题。如果有,那么你可以尝试使用状态管理解决;如果没有,则没必要过度设计,为了使用而使用。其次,如果使用状态管理,那么Get和Provider哪个更好?这两个框架各有优缺点,我认为如果你或者你的团队刚接触Flutter,使用。

2023-07-14 15:43:08 1282 3

原创 Flutter ValueNotifier 监听数据变化

【代码】Flutter ValueNotifier 监听数据变化。

2023-07-14 14:12:30 1327

原创 Flutter GetX使用

此时会出现一个问题,就是如果想创建两个同类型的model(即。在添加的依赖是全局的,考虑到内存释放问题,在页面。如果需要到下一个页面访问该数据,需要使用。相同)需要如何区分呢?功能,如果想使用它的。

2023-07-14 14:05:51 1989

原创 Flutter Notification (通知)

从源码可以看出,一般使用方式需要先创建一个继承自。可能会出问题,可以使用嵌套一层。是一个通知回调,其中有个参数。如果在同一个类中获取。

2023-07-13 15:13:15 1387

原创 Flutter Provider使用

之状态管理下载地址: https://pub-web.flutter-io.cn/packages/provider导入依赖:导入头文件:使用方式创建 Model 混入 。 中的私有属性 变化时 ,添加监听 设置组件监听使用 ,其中 属性设置需要绑定的数据,即上面的 类,这里绑定的数据可以是多个。也可以设置监听一个 model ,使用 :或者使用 :在子组件中监听发送,点击按钮修改数据:在子组件中监听改变数据,其他组件修改了该 Counter 中数据,这个Text组件的值会

2023-07-13 14:58:22 973

原创 Git cat命令的用法

cat(全称) 命令是Linux/类Unix操作系统中最常用的命令之一。cat命令允许我们创建单个或多个文件、查看文件内容、连接文件和重定向终端或文件中的输出。

2023-05-14 19:59:51 334

原创 Git Mac设置系统命令别名和Git命令别名

有时候git命令的别名过长要如何,在命令行不方便输入,这时候我们可以设置命令别名。

2023-05-14 16:18:24 761

原创 Mac 安装Java反编译工具JD-GUI

一、下载JD_GUI软件1.首先到Github下载JD_GUI软件:github java-decompiler/jd-gui Public选择jd-gui-osx-1.6.6.tar.2.解压打开软件,但是提示错误:3.确保本机已安装JDK.4.如果确定已经安装了JDK海报这个这个错误,选中JD-GUI,右键显示包内容,找到这个文件:5.文本编辑器编辑这个universalJavaApplicationStub.sh6.使用以下内容替换:#!/bin/bash##########

2023-04-21 10:38:27 5988 1

原创 Java 查看官方Java API文档

话不多说,直接上方法。

2023-04-21 09:24:24 2448

原创 MyBatis Mapper常用动态SQL之foreach 、if、choose、where、when

if>判断语句,用于单条件分支条件判断使用

2023-04-20 14:43:26 3902

原创 MySQL 常用函数(二)

函数的作用相同,都是返回当前日期和时间值,格式为“YYYY-MM-DD HH:MM:SS”或“YYYYMMDDHHMMSS”,具体格式根据函数用在字符串或数字语境中而定。函数的作用相同,将当前日期按照“YYYY-MM-DD”或“YYYYMMDD”格式的值返回,具体格式根据函数用在字符串或数字语境中而定。函数在指定加减的时间段时也可以指定负值,加法的负值即返回原始时间之前的日期和时间,减法的负值即返回原始时间之后的日期和时间。要在 MySQL 中形成一个表达式,可以结合文字,变量,运算符,甚至函数来组合。

2023-04-19 16:47:07 1554

原创 MySQL 常用函数(一)

现在,我们希望选取 “LastName” 和 “FirstName” 列的内容,然后把 “LastName” 列转换为大写。现在,我们希望选取 “LastName” 和 “FirstName” 列的内容,然后把 “LastName” 列转换为小写。现在,我们希望查找每个客户的总金额(总订单),我们想要使用 GROUP BY 语句对客户进行组合。:如果您在使用 Sql Server 数据库,请使用 getdate() 函数来获得当前的日期时间。现在,我们希望显示当天的日期所对应的名称和价格。

2023-04-19 15:21:14 635

原创 MySQL 数据类型

即便 DATETIME 和 TIMESTAMP 返回相同的格式,它们的工作方式很不同。在 INSERT 或 UPDATE 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。通常,整数可以是负数或正数。如果添加 UNSIGNED 属性,那么范围将从 0 开始,而不是某个负数。中,有三种主要的类型:文本、数字和日期/时间类型。

2023-04-19 14:08:21 439

AAC_Test.zip

详细介绍音频的AAC编码和解码过程,可以直接把代码迁移你的项目中,适用于直播等各类音频类App

2018-03-28

DelayTest.zip

实现延时方法执行,可用的方法有定时器、GCD、NSThread、performSelector方法

2018-02-23

ThreadTest.zip

介绍多种开辟子线程的方法,包括:NSThread,NSOperationQueue,GCD等

2018-02-23

UnitTest.zip

单元测试、性能测试以及UI测试,代码示例,可以很好的看到怎么应用。

2018-02-23

PhotoTest.zip

对PhotoKit框架简单介绍与应用,Demo里面有仿微信和仿简书相册,以及相册视频集播放!

2018-02-06

ArrayTest.zip

多种数组遍历方式,GCD方式遍历,实现耗时操作在子线程中进行。

2018-02-05

ijkplayerTest

ijkplayer是基于ffmpeg的一个视频播放框架,可以播放多种格式的视频,许多直播也是用的这个框架!

2018-01-30

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

TA关注的人

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