移动开发

为什么block要使用copy而不是strong或者其他属性修饰?

block本身是像对象一样可以retain,和release。但是,block在创建的时候,它的内存是分配在栈上的,而不是在堆上。 其本身的作用域是属于创建时候的作用域,一旦在创建时候的作用域外面调用block将导致程序崩溃。因为栈区的特点就是创建的对象随时可能被销毁,一旦被销毁后续再次调用空对象就可能会造成程序崩溃,在对block进行copy后,block存放在堆区。使用retain也可以,但是

国产化监控方案:金仓数据库 + Nagios 从零搭建指南,核心指标实时掌握

前言 在数据库运维工作中,实时掌握数据库状态、及时发现潜在问题是保障业务稳定运行的关键。Nagios作为开源监控领域的标杆工具,凭借其强大的实时监测能力,是当今运维团队的“得力助手”。而现在金仓数据库已实现与Nagios的完美适配,可以快速来搭建高可靠、易扩展数据库监控解决方案。下面我就来看看整个搭建过程吧! 文章目

Android Studio apk体积突然变大(升级gradle后)

升级gradle之后发现 打包出来的apk体积突然大了将近一倍。 解决办法 在主工程的AndroidManifest.xml配置中,在<application>标签,添加android:extractNativeLibs=true属性 android:extractNativeLibs="true" 体积变大原因 extractNativeLibs 瘦身属性 true时会将工程so

MySQL 函数大赏:聚合、日期、字符串等函数剖析

MySQL系列 文章目录 MySQL系列 前言 一、聚合函数 二、日期函数 三、字符串函数 四、数学函数 五、其他函数 前言MySQL 提供了丰富的内置函数,用于处理数据、执行计算、转换格式等操作,本篇将介绍MySQL中常用的一些函数。 本篇文章内容已操作为主这里的函数比较简单,不再解释了,再对其解释就有一种强说愁的感觉了上篇文章

OC之Block使用

Block本质 block本质上也是一个OC对象,它内部也有个isa指针 block是封装了函数调用以及函数调用环境的OC对象 block的底层结构如下图所示 image-20220601203643653 Block变量捕获 变量类型 捕获到block 内部 访问方式 局部auto变量 √ 值传递 局部static变量 √ 指针传递 全局变量 × 直接访问

JS ES8-ES12的相关知识点

一、ES8知识点 1.Object.values 之前我们可以通过Object.keys()获取对象的所有的key。 在ES8中提供了Object.values()获取对象的所有的value值。 如果传入的是一个数组,则是将这个数组本身返回 如果传入的是字符串,是将字符串中的所有字符放入到一个数组中 const obj={ name:"wjy", age:18 } const keys

深入解析Android与iOS设备MAC地址生成原理及Java实现

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 &

(转)Kotlin-协程

上一篇:Kotlin - Lambda 表达式 协程是什么 协程并不是 Kotlin 提出来的新概念,其他的一些编程语言,例如:Go、Python 等都可以在语言层面上实现协程,甚至是 Java,也可以通过使用扩展库来间接地支持协程。 当在网上搜索协程时,我们会看到: Kotlin 官方文档说「本质上,协程是轻量级的线程」。 很多博客提到「不需要从用户态切换到内核态」、「是协作式的」等等。 作

352.【结构化开发方法】用户界面设计-错误信息处理

出错信息和警告信息是指出现问题时,系统反馈给用户的“坏消息”。如果做不好,出错信息和警告会给出无用和误导的信息,反而增加了用户的沮丧感。通常,交互式系统给出的出错信息和警告应具备以下特征。 消息以用户可以理解的语言描述问题。 消息应提供如何从错误中回复的建设性意见。 消息应指出错误可能导致哪些不良后果(例如破坏数据文件),以便用户检查是否出现了这些情况。 消息伴随着视觉或听觉上的提示。也就是说,