自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 【无标题】

2023年2月14日被裁员以来,一直找不到合适的工作机会,焦急过,彷徨过,难道职业生涯到此结束了吗?我才33岁,正值年轻力壮.打算注册一个公司,自己搞点小项目,至少解决家庭支出问题,至于梦想,也要为面包让路.iOS开发已经是夕阳产业了吗?

2023-09-01 11:31:32 93

原创 goland 同一个包中函数互相调用报错 undefined

goland 同一个包中函数互相调用报错 undefined

2022-09-23 14:04:36 1555 1

原创 swift 互斥锁

///objc_sync_enter(lockString)///objc_sync_exit(lockString)///同步锁,当同步锁上锁后,下一个线程企图访问资源,会被return掉,而不是等待///func buyTicket(username: String) { DispatchQueue.global().async { ///加上互斥锁,保护资源...

2019-10-09 12:21:35 665

原创 MJExtension实现原理简单剖析

MJExtension实现原理简单剖析剖析MJExtension实现字典转模型的大致流程,我们不难发现分为4步:1.遍历模型中的所有属性2.解析属性的类型3.以属性名为key在字典中寻找对应的值4.根据属性的类型转化成对应的值并赋值首先实现第一步:遍历模型以及模型父类的所有属性,重新封装一个Property类,然后将Property对象放在数组中以供调用#import <Fo...

2019-04-17 14:55:18 398

原创 KVO 解密二:探秘KVO实现原理

探秘KVO实现原理待续…

2019-04-16 22:26:47 110

原创 KVO 解密一:KVO简单使用

KVO 解密一:KVO简单使用KVO全称KeyValueObserving,是苹果提供的一套事件通知机制。允许对象监听另一个对象特定属性的改变,并在改变时接受到事件。一般继承自NSObject的对象默认都支持KVO。KVO和NSNotificationCenter都是iOS观察者模式的一种实现。区别在于,相对于被观察者和观察者之间的关系,KVO是一对一的,而不是一对多的。KVO对被监听的对象没...

2019-04-16 22:24:12 184

原创 利用Runtime解析类的属性Property

利用Runtime解析类的属性Property回家待续…

2019-04-12 18:53:10 190

原创 dispatch_semaphore_t 初探

dispatch_semaphore_t 初探场景:假设现在系统有两个空闲资源可以被利用,但同一时间却有三个线程要进行访问,这种情况下,该如何处理呢? 或者 我们要下载很多图片,并发异步进行,每个下载都会开辟一个新线程,可是我们又担心太多线程肯定cpu吃不消,那么我们这里也可以用信号量控制一下最大开辟线程数。定义:信号量:是一种控制资源访问数量的标识,设定一个信号量,在线程访问之前,加上信...

2019-04-12 14:42:56 276

原创 C 语言内联函数(inline)的原理剖析以及应用场景

C 语言内联函数(inline)的原理剖析以及应用场景内联函数和普通函数的区别:普通函数:在f1()函数调用普通函数f0()时,将程序执行地址转变为f0的函数地址,执行完f0后,再将程序的执行地址转换为F1的函数地址。这种函数地址的转移操作需要保护现场和函数地址的压栈和出栈等操作,执行完成后恢复现场。内联函数:在编译阶段,将f0的代码拷贝到f1的指定位置,在f1()函数调用普通函数f0()时...

2019-04-11 14:22:37 2713

原创 C语言union学习总结

C语言union学习总结联合和结构体的区别:结构体变量:各个成员变量顺序存储,每个成员都有独立的内存空间,结构体变量占用的内存是各个成员变量内存之和;联合变量:所有的成员共享一片内存,联合变量分配的内存大小为其成员中最大的成员变量的内存。联合的定义:union data { char n; float f;}union data u1 = {3};//此时只有成员变量n被初始化;...

2019-04-11 11:42:20 461

原创 小知识reverseObjectEnumerator和ObjectEnumerator

定义:- (NSEnumerator<ObjectType> *)objectEnumerator;///正向枚举- (NSEnumerator<ObjectType> *)reverseObjectEnumerator;///逆向枚举举例:NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];...

2019-04-03 11:34:48 817

原创 小知识CGRectInset 和 CGRectOffset

CGRectInset定义:CG_EXTERN CGRect CGRectInset(CGRect rect, CGFloat dx, CGFloat dy);//作用是以当前矩形为中心,放大缩小宽高,获取新的矩形UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; view1.b...

2019-04-03 11:11:12 189

原创 git pull 总提示让输入merge 信息

git pull 总提示让输入merge 信息问题描述:多人写作共同开发一个分支,用git提交代码时,经常会出现要求输入Merge信息的情况,如图:面对这种情况,我个人最常用的解决方案是:直接ESC 然后:wq 保存信息并返回,不做任何修改。在log会显示出一条信息字面意思是从远程端的master合并到本地仓库的master,让人略略困惑。究其原因:经过测试git,发现出现场景:当...

2019-04-02 17:59:19 2773

原创 Swift4新特性之“减少隐式@objc自动推断”

Swift4新特性之“减少隐式@objc自动推断”在项目中,如果Swift的API需要暴露给Objective-C调用,需要增加关键词@objc。很幸运,在Swift3中,编译器会自动给我们加上@objc,例如当我们写一个继承自NSObject的类,这个类的所有类方法和实例方法都被默认隐式加上@objc。class MyClass:NSObject { func print() {...} ...

2019-03-27 11:45:36 136

空空如也

空空如也

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

TA关注的人

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