移动开发

iOS 关于创建超过5个 tabBar 的方法!

如果使用系统的tabBar 最多只能显示5个,所以想要展示超过5个 就只能自己想办法弄喽!我用的办法是: 1:先把系统的tabBar 隐藏掉  [self.tabBar setHidden:YES];   ps:在继承了UITabBarController 的tabBar控制器里面!  2:自定义个view添加到自定义的tabBar控制器里面,上面创建你想要的个数的按钮!然后放在tabBar的位置

set/map(ES6)

set与map理解 ES6中新增,set集合和map集合就是一种数据的存储结构(在ES6之前数据存储结构只有array,object),不同的场景使用不同的集合去存储数据 set集合 Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。 语法: //创建一个set集合,传参为一个可迭代的对象 const s1 = new Set(iterable); API 名

Spring Boot @Retryable重试策略

在实际工作中,重处理是一个非常常见的场景,比如: 发送消息失败。 调用远程服务失败。 争抢锁失败。 这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。 然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。 一、

Runloop原理(一)

此文章的意图:当你完全细心阅读之后,对runloop认知,会成为你作为一名ios开发人员潜意识里的一部分 一、官方一张图开始 image.png 官方文档开宗介绍 Run loops are part of the fundamental infrastructure associated with threads. runloop是与线程相关的基础架构的一部分,说白了runloop

iOS 分析dyld工作过程 dyld-941.5源码

dyld源码 苹果官方资源opensource objc4-838可编译联调源码 一、了解相关概念 1.静态库、动态库 通常程序都会依赖系统一些库, 库是什么呢? 其实库就是一些可执行的二进制文件, 能被操作系统加载到内存里面中。库分为两种:静态库 / 动态库 静态库:是一堆.o文件的集合。格式.a, .lib等。链接阶段时静态库会被完整地复制, 一起打包在可执行文件中,被多次使用就有多份冗余

13. Java类中的封装

13. Java类中的封装 1、Java类中的封装 学习了访问权限修饰符后,应该可以理解封装性的概念和含义。封装性是面向对象三大特征之一 封装性是一种信息隐藏技术 2、封装的概念 在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。 要访问该类的

iOS 防录屏

//当用户录屏 怎么办 目前来说 只能进行提示。监听到就返回上一页,并弹出提示 1,检测当前设备是否在录屏: pragma mark -- 录屏 (void)addLuPingJianTing{ //监测当前设备是否处于录屏状态 UIScreen * sc = [UIScreen mainScreen]; if (@available(iOS 11.0,*)) { if (sc.isCaptur

设计模式之装饰器模式

也称装饰者模式、装饰器模式、Wrapper、Decorator。 装饰模式是一种结构型设计模式, 允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。 解决方案 当你需要更改一个对象的行为时, 第一个跳入脑海的想法就是扩展它所属的类。 但是, 你不能忽视继承可能引发的几个严重问题。 继承是静态的。 你无法在运行时更改已有对象的行为, 只能使用由不同子类创建的对象来替代当前的整个对

Android卸载系统软件 免Root 禁用系统更新

步骤 1,手机打开开发者选项,连接电脑允许adb调试权限; 2,打开终端,命令行执行adb devices 查看设备连接情况; image.png 3,卸载系统应用,这一步前提是你知道系统应用的包名(有多种方法获取,文末有介绍); adb shell pm uninstall --user 0 包名 例如卸载手机系统更新(此为oppo或realme手机系统,如果不想收到系统更

Flutter基础知识

0、Dart是值传递还是引用传递? Dart是值传递。每次调用函数,传递过去的都是对象的内存地址,不是对象的复制。 知识点扩展:Swift的struct是值类型,class是引用类型;意思是:声明一个新的变量指向这个结构体,改变某个属性,原本的结构体属性不会发生变化;而类会随着改变 1、Flutter的核心树 Widget: 1、使用配置和状态,描述view的样子 2、当一个Widget发生改变时