自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

兜兜有????的博客

iOS开发、Mac、Swift、Objective-C、Python、等

  • 博客(205)
  • 收藏
  • 关注

原创 大龄程序员思考

视觉AI很难做近来一直在从事AI 视觉检测方面的工作,外行人可能觉得挺厉害,实际上这钱挣得基本等于搬砖近两年以来,行业不景气、制造业利润上不去,那么在这个产业链中,老板就没有余钱来进行升级改造。老板们是否愿意花钱投入视觉检测,一是老板的认知、二是是否有足够的资金实力; 就算最后,老板有需求,也得经过招标投标的工作,也不一定会找你。从技术角度上看,视觉相关的比如、配置检查、缺陷检测、测量引...

2024-05-31 13:01:00 200

原创 苹果开发者是否审核歧视中国开发者?傲慢无耻的苹果公司(二)

审核一个应用真的需要半个月么?你们的审核人员每天在拿着我们的开发者费用, 故意拖延?

2024-05-14 22:50:00 438

原创 苹果开发者是否审核歧视中国开发者?傲慢无耻的苹果公司

说来惭愧,作为差不多10年的开发者,第一次尝试提审,结果却收获来了苹果无休止的等待我从4月24日替身,后续到现在没有任何回馈,只告诉你 other 原因拒绝,请问苹果是只针对中国开发者,还是所有开发者?如果一个账户按年计费,一次等待按照一个月起算,耽误多少开发者的时间和金钱。我知道苹果一向傲慢,却不知道为何如此傲慢,尤其是在苹果全球销量下滑的情况下,一方面依赖中国市场、一方面傲慢对待中...

2024-05-14 21:55:00 361

原创 2024年感想

  看了一眼之前到博客,最近的一次博客还在一年之前,时间如白驹过隙,飞快流逝。这两年生活和工作都经历里很多,想想是应该在这里好好梳理总结下。我总是感慨,自己从二十六七岁到现在三十多的年纪,好像经历别人的半辈子,感悟众多。  我以前是个朋友众多的人,现在30多的年纪,除了家庭工作两点一线的生活,已经很少和朋友之间的交集,就算是微信上曾今的朋友突然拉的群,也顿感压力,不知道又有何事。我现在只想落得...

2024-05-02 13:55:00 369

原创 Flutter TextField开始输入中文的时候,被打断导致错误输入字母问题

一、Bug样例建立一个web demoflutter run -d chrome --web-renderer html 出现问题: 输入中文的时候,比如打字 hao, 第一个字母h会先输入,变成h奥二、解决  网上资料说是因为在text onChange中使用了setState刷新会打断输入,实际测试,就算不设置onChange, 不设置controller,一样会导...

2023-03-03 17:07:00 759

原创 2022到2023

2022年到2023年,工作内容发生了很大变化。原来在字节主要做iOS平台上的业务开发,使用Swift语言。后面新的工作内容主要做IoT相关,不再局限在移动端,而是围绕整个IoT系统。从iOS介入到后端开发之后,处理事情发生很多的变化。移动端属于大前端,比较关注业务功能,用户体验,性能指标;而后端集中在系统架构设计,数据存储和迁移,以及请求并发和分布式;虽然关注的领域有所不同,但是二者核...

2023-03-03 16:22:00 396

原创 iOS 后台录音Tweak实现参考--stackoverflow

up vote9down voteaccepted+50"Audio Recorder" is indeed a very simple tweak. The author tried to obfuscate important parts of his tweak (which function is being hooked), but here is what I f...

2022-11-07 17:29:42 428

原创 Xcode Debugger Extremely Slow , Xcode Swift调试器调试时极其慢()

一、Xcode 调试器  我的项目是国内某办公软件的iOS客户端, 代码量极其庞大, 编译一次至少30min以上。  关键是,如果你遇到问题的时候,调试下断点,需要至少5min才能断下来,走下一步,又重复同样的流程二、问题排查  实在忍受不了,只能在网上寻找方案, 只有说遇到类似的情况的, 但是没有有效的解决方案  比如 stack overflow上面:  https://stac...

2022-02-25 19:46:00 859

原创 GCD系列 一 使用DispatchWorkItem (3)

DispatchWorkItemDispatchWorkItem是封装work的对象,可以监听work完成的通知,并指定和其他DispatchWorkItem之间的依赖关系。A DispatchWorkItem encapsulates work to be performed on a dispatch queue or within a dispatch group. You can also use a work item as a DispatchSource event, registrat

2022-02-24 19:59:03 807

原创 为什么SwiftUI使用struct, 限制使用class

前言在学习SwiftUI所有的地方,视图元素都定义一个struct并实现View协议,该协议定义body变量返回View类型。但是为什么,这里一直是指定的struct, 而不是class呢?尝试使用class如果你使用class 在SwiftUI中定义一个View,那么你将遇到一个编译器的错误Protocol 'View' requirement '_makeView(view:in...

2022-02-23 15:49:00 2189

原创 GCD系列 一 使用队列(2)

GCD 队列使用文档先看官方文档, DispatchQueue 是一个class对象,继承自 DispatchObject;DispatchObject 实现了 OS_object 中的方法, 猜测 OS_object 可能是一个协议,文档中没有查找到先看 DispatchObject:func activate() Activates the dispatch object.func resume() Resumes the invocation of block objec

2022-02-18 18:38:06 1519

原创 GCD系列 一 整体介绍 (1)

GCD是什么按照官方文档的解释,针对在多核系统上运行并发执行程序,提供了系统性的支持。支持包含语言中的方法,以及运行时库。可以应用在macOS、iOS、watchOS、tvOS上Dispatch, also known as Grand Central Dispatch (GCD), contains language features, runtime libraries, and system enhancements that provide systemic, comprehensive im

2022-02-18 12:12:25 1156

原创 iOS中关于GCD的系列文章

背景GCD作为iOS、MacOS平台上开发上多线程常用的库, 同时也是面试中常见的问题,我将撰写一个系列的文章,力图阐明所有的细节,深刻理解其原理,帮助自己和大家提升对多线程编程的认识。目录GCD系列一整体介绍...

2022-02-18 11:35:37 786

原创 Swift中结构体传参写时拷贝问题

问题Swift中的结构体是值类型,在方法中作为参数传递的时候,通常会拷贝一份,那么如果这个结构体很大或者方法调用次数很多,是否会存在性能问题呢。实际上这种情况比较极端,很难发生值类型的传参优化Swift内置基本类型使用COW(写时复制);对于你自定义的结构体,其中必然包含基本的值类型,其元素也会采用COW,这样就不用过于担心struct拷贝的开销In practice, this is rarely an issue, because we’re frequently using native

2022-02-16 18:22:38 579

原创 SwiftUI Stack中的View被压缩的效果

一、背景  我们在布局中,经常会遇到视图元素排列时空间不足或者空间过大的情况,在这种场景下面,不同的布局方式有不同的方法:  绝对布局frame:纯靠计算过程控制,获取父视图的大小,根据需求,计算自己需要的大小,并设置到frame上去  iOS autolayout:这里更先进一点,将视图中的约束预设进布局的DSL中,当视图的尺寸发生变化的时候,根据DSL描述修改视图的尺寸,这个是自动化完...

2022-01-13 18:53:00 324

原创 Swift 计算字符串展示的区域

一、如果是普通文本,那么可以采用NSString的方法,代码如下:import UIKitimport PlaygroundSupportclass MyViewController : UIViewController { override func loadView() { let view = UIView() view.backgroun...

2022-01-13 11:37:00 434

原创 FlexBox 行间距

问题背景在Flex布局方式下, 父容器约定是换行的方式, 不足以容纳一行子元素的时候, 会单独进行折行, 那么折行的行间距如何处理呢?解决办法通过在子Item上面设置margin-top可以模拟出折行之后, 下面一行距离上面一行的间距;但是这样操作之后, 会导致第一行和父容器的间距增大, 通过设置父容器的margin-top为相同的负值, 可以抵消这个间距代码如下:.flex-co...

2021-09-23 13:39:00 687

原创 swift_slowAlloc Crash 分析

一、Crash详情Crash类型exception EXC_BREAKPOINT (SIGTRAP)reason EXC_BREAKPOINT EXC_ARM_BREAKPOINT fault_address:0x0000000185ba6824Crash堆栈0 libswiftCore.dylib 0x0000000185ba6824 swift_slowAlloc.cold....

2021-09-22 18:23:00 448

原创 Swift Lazy计算属性的线程安全分析

一、代码示例//// ViewController.swift// LazyTest//// Created by lilun.ios on 2021/7/30.//import UIKitclass ViewController: UIViewController { lazy var profileImageView: UIImageView =...

2021-07-30 19:00:00 312

原创 Swift全局变量的线程安全分析

一、示例代码import UIKitlet obj = TestObj()class TestObj { init() { print("\(type(of: self)) init") }}class ViewController: UIViewController { func test() { let x ...

2021-07-23 15:45:00 377

原创 Swift 与 Objc Exception

一、背景  Swift具备完善的Error handle机制,对于纯Swift下面的Error,在编码的时候能够正确处理。  在使用try? 处理抛出Error的方法的时候,会忽略Error,直接返回nil二、Swift 与 Objc下面的Exception  下面的代码是经常遇到的一种场景,Swift序列化 private func serialize(message: Me...

2021-07-13 16:08:00 182

原创 Swift 模式下面LLDB 输出对象

(lldb) expr -l Swift -- import UIKit(lldb) expr -l Swift -- let $pin = unsafeBitCast(0x7f81c8d459f0, to: UILabel.self)(lldb) expr -l Swift -- print($pin.text)

2021-06-18 11:04:00 112

原创 Understanding Swift’s value type thread safety - 代码分析(二)

示范代码`func testScenarioA2() throws { var store: Int = 100 DispatchQueue.concurrentPerform(iterations: 1_000_000) { _ in store.negate() _ = store }}`开启线程race诊断后,出现以下错误...

2021-04-08 21:13:00 160

原创 Understanding Swift’s value type thread safety - 代码分析(一)

结构体并不代表线程安全,swift在此上未做保证 func testScenarioA() throws { var store: Int = 0 DispatchQueue.concurrentPerform(iterations: 1_000_000) { i in store = i _ = st...

2021-04-02 23:23:00 97

原创 多线程交替输出字符串(2)

与上一篇逻辑类似,这里采用同样的生产者消费者模式创建线程使用了BlockOperation封装操作,使用OperationQueue作为并发队列代码如下:import Foundationvar run: Bool = true/// 将字符转成UInt8func charToInt(chr: Character) -> UInt8? { return chr.asc...

2021-03-13 16:05:00 105

原创 多线程交替输出字符串(1)

看到一个题目,多个线程交替输出 AB0CD1EF2GH3...  这个可以使用多种实现,主要考察线程之间的同步方式。  线程之间的同步方式有多种,这里采用第一种import Foundationvar run: Bool = true/// 将字符转成UInt8func charToInt(chr: Character) -> UInt8? { return ch...

2021-03-12 21:51:00 158

原创 Specs satisfying the `flutter_twitter (from `.symlinks/plugins/flutter_twitter/ios`)` dependency wer...

MXFlutter的依赖发生变化,需要将iOS最低系统版本提高修改之后,进入到MXFlutter目录,执行 flutter run 发现编译错误咨询了下,mxflutter需要flutter为用Flutter 1.20.3 版本进入flutter目录,执行git checkout tags/1.20.3再回到mxflutter,执行cleanflutter clean...

2021-03-10 10:50:00 1197

原创 Swift 属性装饰器

import ArgumentParser@propertyWrapperstruct WrapperTest { internal var innerValue: Int { didSet { print("didSet called \(oldValue)") } willSet { ...

2021-03-04 22:23:00 172

原创 Swift Copy On Write 多线程下面的资源竞争

Swift中的String、Array、Dictionary等容器类型默认实现了写时复制,这个操作在多线程下面可能会带来错误https://bugs.swift.org/browse/SR-6543

2021-02-23 17:51:00 210

原创 关于DateFormater

一、关于时间的解析let dateFormatter = DateFormatter()dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ssZ"//dateFormatter.timeZone = TimeZone.current//dateFormatter.locale = Locale.currentlet date = dateFor...

2020-06-18 15:08:00 369

原创 Swift 排查引用循环

------------恢复内容开始------------一、最近使用RxSwift在多次信号的嵌套中,发现一个对象始终始终无法释放  开始想通过Memory Graph验证是否没有释放,一直报错,后来确认是Xcode的bugNo reply dictionary received from LeakAgent request    始终无法确认问题,只能考虑使用一个弱引用的数...

2020-04-29 23:59:00 207

原创 AutoLayout与UIbutton

1、UIButton贴近右边,高度固定,宽度跟随标题变化class TestButton: UIButton {}class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let btn = TestButton(type:...

2019-11-07 21:29:00 105

原创 UIScrollView 在Autolayout下使用的一些问题

一、UIScrollView 双指放大手势,双击放大实现  在设置UIScrollView的frame后、maxZoomScale 和 minZoomScale之后,UIScrollView会自然支持双指捏合的手势,自然支持放大缩小  对于双击的手势,只要添加一个tap双击的识别器,然后在响应的时候,计算出来放大缩小之后的中心点(需要加上当前点击位置的向量),得到最终的rect就行了二、A...

2019-07-22 14:02:00 94

原创 sourceTree .gitignore文件处理

  最近犯了个低级错误,在sourceTree中通过右键,直接将 工程文件加入到 ignore列表中。提交之后,别人拉下来代码一直显示报错    在意识到上面这个错误之后,一直想恢复却恢复不了,尝试从SorceTree 偏好设置中也不行    后来发现,在git根目录下面还有一个叫做 .gitignore到隐藏文件,所有忽略到文件列表在这个目录中,  执行ls -d .* , 就能看...

2019-07-17 11:49:00 206

原创 Mp4V2与ffmpeg静态库符号冲突问题解决

一、为什么静态符号会冲突  无论macho二进制类型,还是Windows上的PE格式,还是Linux上的ELF格式,里面都是按照特定格式存放的一个程序的代码和数据  比如Linux下的可执行文件格式,大致分为下面这些段  参考:https://www.ibm.com/developerworks/cn/linux/l-excutff/      不同操作系统支持的可执行文件格式不一样,但...

2019-06-29 15:24:00 253

原创 iOS 处理HLS视频流

一、HLS介绍  HLS是苹果主导的音视频传输协议,其主要的格式是一个索引文件(M3U8)+ ts分片的视频文件。  HLS的优势是iOS系统天然支持,通过Http 80传输,规避了常规的防火墙问题。  视频的分片方便服务器CDN对视频文件分发缓存。  HLS支持视频点播和直播,直播的延时可能达到10s。二、HLS协议内容    完整的HLS协议包含,视频加密标准(MPEG4、H2...

2019-06-27 20:30:00 576

原创 对于UITableView和UIImageView的DrawRect重写之后的影响

一、继承UITableView和UIImageView , 重写DrawRect 方法,然后里面留空  ImageView@implementation DrawImageView- (void)drawRect:(CGRect)rect { // Drawing code}@end  Table@implementation DrawTestTable...

2019-06-15 16:21:00 122

原创 UILabel的DrawDrect方法

一、问题  如果继承UILabel实现自己的一个Label,并且在子类的DrawRect方法中留空,什么都不写,会发生什么?  代码如下:  VC@interface ViewController ()@property (nonatomic, strong) DrawTestLabel *dwLabel;@end@implementation ViewController...

2019-06-15 15:58:00 116

原创 《iOS面试之道》-勘误2

一、如何保证NSTimer不受Runloop的影响,准时触发  书中提到两种方案,  一种是改变timer加入到runloop中的Mode,为CommonModes不受Runloop的Mode影响  第二种是下面图片中的方案,这个方案中的代码是存在问题的@implementation ViewController- (void)viewDidLoad { [super vi...

2019-05-19 13:59:00 82

原创 两数之和 II - 输入有序数组

很久没有刷leetcode,习惯不能丢。打算继续保持,从海外转到“力扣”,继续完成。一、题目描述二、解答  根据题意,有序数组,并且都是有解的。  如果单纯一个一个比对,也能找到想要的结果,只不过算法复杂度最高。  先确定左值,现在的题目就变成在有序数组中寻找一个数了;    常规有 二分查找,哈希;二分查找适合有序的数组,哈希适合无序,需要先建立哈希表。    本题适合二分查...

2019-05-14 15:47:00 85

空空如也

空空如也

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

TA关注的人

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