240 发简信
IP属地:北京
  • 120
    仿微信消息长按气泡菜单

    话不多说,直接上效果图 gif效果图[https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0ef08a00b2394038aa...

  • Homebrew源

    一、什么是Homebrew的源? 其实就是一个git的url,对应的是git仓库。每次通过Homebrew安装软件,Homebrew会根据源,会比对、下载(或者merge)源...

  • iOS 键盘联想特殊字符问题

    话不多说先上图 [图片上传失败...(image-3146a2-1657457047127)] 做了个需求,产品要求右边字数限制是字节数限制,中文汉子2字节,英文字母、数字都...

  • emoji表情字符串截取乱码问题

    我们在开发中很多时候都会遇到字符串截图,比如文本显示长度限制、自定义协议解析都会截取一部分字符串进行操作。 但是我们直接用系统方法substringToIndex、subst...

  • 120
    为什么dispatch_get_current_queue被废弃

    一、前言 根据dispatch_get_current_queue头文件注释 Recommended for debugging and logging purposes o...

  • 120
    多线程(四) @synchronized

    多线程出现最多的就是安全问题,解决多线程安全问题就是加锁。锁的种类有很多,每种锁使用场景、性能上都有所不同,我们写一个测试demo,测试各种锁的耗时,demo下载地址[htt...

  • 120
    多线程(二)

    我们都知道,程序启动就会创建一个主线程来执行程序,我们先看一下默认开启的主线程的相关信息。在main函数打一个断点,看函数调用栈: 可以看到当前线程:Queue: com.a...

  • 120
    Method-Swizzling 坑

    在viewcontroller执行下面代码 会崩溃: 子类没有实现方法,方法交换交换的是父类的方法imp,父类并没有lg_studentInstanceMethod方法,所以...

  • 120
    类的加载(上)

    _objc_init objc源码入口就是_objc_init,接下来我们分析下这个函数: 首先,一个静态变量保证函数内部只会被执行一次。 environ_init();环境...

  • 120
    iOS消息转发

    我们已经研究了objc_msgSend从汇编快速查找缓存流程,慢速查找流程,动态方法决议流程,如果这几个流程下来都没找到合适的执行方法,接下来就会走到消息转发流程。消息转发流...

  • 120
    iOS performSelector && afterDelay 与线程之间的关系

    首先来段代码 上面代码会输出什么呢?来跑一下看看: 只会输出aaa,说明 [self performSelector:@selector(test:) withObject:...

  • 120
    编译器优化

    首先我们先看以下代码: 编译器优化优化的是什么呢,优化的是底层代码执行逻辑,使项目执行更加高效。汇编是最接近底层的代码,所以我们从汇编来看编译器优化是如何优化的。在15行打个...

  • Flutter3-面向对象

    类和对象 使用class关键字声明一个类 可以使用new跟上构造函数 所有的对象都继承Object类 声明一个类的成员变量要有默认值,如果没有默认值需要写上?代表可选类型。 ...

  • Flutter2-Dart语法

    变量 final变量 常量 Dart的数据类型 数值型Number: int & double 字符串 bool 列表 - List 键值对(字典) - Map 数值类型 字...

  • 120
    Flutter1-环境搭建 For Mac

    Flutter开发工具 Flutter开发目前主流是是两种开发工具:Android Studio和VSCode。这里我们选择使用Android Studio,简称AS,这个开...

  • 120
    多线程(一)

    线程与进程 线程是进程的基本执行单元,一个进程所有任务都在线程中执行 进程想要执行任务,必须得有线程,进程至少要有一条线程 程序启动会默认开启一条线程,这条线程被称为主线程或...

  • IEEE-754标准小数十六进制转十进制

    今天开发遇上了个问题,从蓝牙设备获取的data数据是<713da442 0600>,数据格式转化是前4个字节逆序表示浮点数十六进制数据,也就是对应的十六进制数据为:0x42a...

  • 120
    应用程序加载:从dyld到objc

    想要了解应用程序加载,我们需要了解下面几个问题: 我们写的代码是如何加载到内存的? 我们使用的动静态库是如何加载到内存的? objc是如何启动的? 我们程序执行都会依赖很多库...

  • 波非那切数列算法

    波非那切数列:0 1 1 2 3 5 8 13.....第n项是第n-1项和n-2项的和。第一项为0,第二项为1。 简单思考,可以用递归: 运行起来结果看上去没...