- 博客(95)
- 资源 (1)
- 收藏
- 关注
原创 Protobuf 环境搭建及语法
环境搭建及编译 1.安装brewruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"执行这一步的时候可能会error443 connect报错,则用下面方法安装/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/home...
2022-03-12 22:46:52
3858
原创 iOS 多环境配置
project -> info -> Configurations 最初始 info -> Configurations 里只有默认 Debug、Release 两种配置,和 Building Settings 里是对应的在 Configurations 中增加配置 Test 环境 设置不同环境下的宏定义 其中 DEBUG=1是默认存在的(可修改),这里对应关系如上图 复制Target 复制两个target,并分别命名MoreEnviron...
2022-03-06 23:06:03
520
1
原创 KVO总结
@interface KvoOperation : NSOperation@property (nonatomic, getter=isFinished) BOOL finished;@property (nonatomic, strong) NSString *k;@property (nonatomic, strong) NSMutableArray *mutArr;-(void)insertObject:(id)object inMutArrAtIndex:(NSInteger)ind.
2022-02-20 20:36:42
1176
原创 crash 日志符号化处理
1、find /Applications/Xcode.app -name symbolicatecrash找到symbolicatecrash 文件,复制导出到 1.crash(待解析文件) 同级路径2、把符号表文件 dSYM 也放到同级路径。3、export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developerexport DEVELOPER_DIR=/Applications/Xcode.app/Contents/Develo.
2021-12-26 10:49:08
1031
原创 Charles使用
1、连接同名wifi、设置代理(手动、IP(电脑ip)、端口 8888)2、proxy ->proxy Settings -> 勾选 Enable transparent HTTP proxying3、help -> SLL proxying -> Install Charles Root Ceritificate help -> SLL proxying -> Install Charles Root Ceritificate On a Mobi...
2021-12-22 20:31:15
1248
原创 CocoaPods创建私有库,并发布
1、创建 repo 私有库 (存放 spec)pod repo add[Private Repo Name] [GitHub HTTPS clone URL]eg:pod repo add ZHPrivateRepo git@github.com:cornZhou/ZHPrivateRepo.git【注释】ZHPrivateRepo 本地 repo 名称,git@github.com:cornZhou/ZHPrivateRepo.git远程 spec 库地址执行 pod repo li...
2021-11-02 00:15:36
602
原创 mac 显示隐藏文件
1. command+space打开终端,输入defaults write com.apple.finder AppleShowAllFiles -bool true //此命令显示隐藏文件defaults write com.apple.finder AppleShowAllFiles -bool false //此命令关闭显示隐藏文件复制代码2. 在键盘按下option+command+esc,弹出正在运行的软件,选中Finder点击右下角的重启按钮。...
2021-09-25 22:34:28
159
原创 mac生成ssh key
1、查看本地是否有ssh keyls -al ~/.ssh如果提示:No such file or directory,则没有。
2021-06-05 09:43:38
613
原创 自定义弹框使用使用
CommonPopView *popView = [[CommonPopView alloc] init];contentView.ctionBlock = ^{ [popView removeFromSuperview]; //====== }; popView.contentView = contentView; popView.alpha = 0.3; popView.direction = PopViewFromDirec.
2021-05-06 23:58:59
129
原创 layer绘制方法
//画线-(CAShapeLayer *)drawLineFromPoint:(CGPoint)p1 toPoint:(CGPoint)p2 width:(CGFloat)w color:(UIColor *)c{ CAShapeLayer *layer = [CAShapeLayer layer]; layer.lineWidth = w; // layer.fillColor = c.CGColor; layer.strokeColor = c.CGColor; .
2021-05-06 23:46:00
306
原创 RunLoop 细节总结
1、主线程RunLoop,一般情况运行在 NSDefaultRunLoopMode 模式下,在滑动Scrollview 时候运行在UITrackingRunLoopMode 模式下。[runLoop addTimer:timer forMode:NSRunLoopCommonModes] ,NSTimer 添加到NSRunLoopCommonModes ,才能在上面的两种情况下都执行定时方法。2、RunLoop有三种启动方式- (void)run;- (void)runUntilDate...
2020-09-03 21:00:40
289
1
原创 cocoapods 问题记录
https://blog.youkuaiyun.com/sinat_27706697/article/details/49225303reactiveCocoahttps://developer.apple.com/download/more/xcode 各个版本cocoapods 问题https://www.jianshu.com/p/ab6411a05bc2https://www.jianshu.com/p/164f309b54fe
2020-06-11 09:27:46
169
原创 xcode 各版本下载地址
xcode 各版本下载地址,收藏下https://developer.apple.com/download/more/
2020-06-10 09:34:09
2843
原创 AudioQueue
//========================= 播放 ==============================// 所属类 AudioPlayerAudioQueueRef mQueue;AudioStreamBasicDescription mDataFormat;//创建AudioQueueAudioQueueNewOutput(&mDataFormat, ...
2020-04-16 20:57:15
297
原创 技术博客收藏
mark 一些比较好的总结!感谢分享gcd 原理https://www.jianshu.com/p/ea419f32a3a9https://www.jianshu.com/p/a043da8424e8FMDBhttps://www.jianshu.com/p/3682795d3f38https://www.jianshu.com/p/e5c6c21dd981htt...
2020-03-27 18:20:50
304
原创 setneedsdisplay layoutifneeded setNeedsLayout
1、setneedsdisplay : 用于 view 的重绘操作,会触发 view 的drawRect: 方法。2、setNeedsLayout 和layoutIfNeeded 区别setNeedsLayout 标记为需要重新布局,异步调用layoutIfNeeded刷新布局,不立即刷新,在下一轮runloop结束前刷新,对于这一轮runloop之内的所有布局和UI上的更新只会刷...
2020-03-26 11:50:10
902
原创 iOS 隐式动画
修改 view 的非 root layer 的属性时会有默认动画效果(0.25秒)。@interface CircleAction : NSObject<CAAction>@property (nonatomic) CGFloat oldProgress;@end@implementation CircleAction-(void)runActionForKey:(N...
2020-03-25 18:23:23
427
转载 id instancetype NSObject *的区别
id和instancetype都可以做方法的返回值。 id类型的返回值在编译期不能判断对象的真实类型,即非关联返回类型,instancetype类型的返回值在编译期可以判断对象的真实类型,即关联返回类型。 id可以用来定义变量, 可以作为返回值, 可以作为形参,instancetype只能用于作为返回值。 使用id修饰的对象是动态类型,编译器在编译期不会去判断其真...
2020-03-24 21:07:25
208
原创 FMDB 使用详解 mark
https://www.jianshu.com/p/67afbcf32808https://blog.youkuaiyun.com/huanghuanghonghong/article/details/51203540https://www.jianshu.com/p/7958d31c2a97感谢上面的总结,mark 一下
2020-03-20 21:12:31
208
原创 信号量
dispatch_semaphore_create(long value); // 创建信号量dispatch_semaphore_signal(dispatch_semaphore_t deem); // 发送信号量dispatch_semaphore_wait(dispatch_semaphore_t dsema, dispatch_time_t timeout); // 等待信号量...
2020-03-10 14:24:25
225
原创 python 修改文件名称或md5值
一、修改文件前缀(JH-->Jneth)import os//需要修改的类名前缀 (需替换)pre_str = 'JH'// 新的类名前缀 (需替换)pre_to_str = 'Jneth'// 搜寻以下文件类型 (根据自己需求替换)suf_set = ('.h', '.m', '.xib', '.storyboard', '.mm')// 项目路径 (找到自己的项目路...
2020-03-09 19:18:32
1203
1
原创 大端小端总结
什么是大端 / 小端?大端(存储)模式,是指低位保存在高地址,高位保存在低地址中小端(存储)模式,是指低位保存在低地址中,而高位保存在高地址中判断大小端方法1.定义变量int i=1;将 i 的地址拿到,强转成char*型,这时候就取到了 i 的低地址,这时候如果是1就是小端存储,如果是0就是大端存储。void judge_bigend_littleend2(){ ...
2020-03-02 15:31:43
559
原创 SD_WebImage 流程
SDWebImageManager:总调度类,内部有SDImageCache、SDWebImageDownloaderSDImageCache:处理内存、disk 的缓存SDWebImageDownloader:真正的下载管理者,内部有SDWebImageDownloaderOperation(NSOperation)、downloadQueue (NSOperationQueue)m...
2020-02-26 17:25:22
177
原创 处理手势冲突
例如:ViewController 侧滑返回手势 和 一个 向右侧滑控件(OpenDoorView)手势冲突。nav.interactivePopGestureRecognizer.delegate =ViewControllerViewController中重写代理:- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gesture...
2020-02-26 15:46:30
354
原创 CALayer 动画原理
在CALayer的属性发生变化时会被调用,然后会根据对应的event来寻找一个遵循 CAAction协议的对象,寻找流程如下:如果CALayer的delegate存在并实现了 actionForLayer:forKey:方法,那么调用该方法寻找;从CALayer的actions字典中根据event为key值寻找;从CALyaer的style层级中的actions字典中根据event为key...
2020-01-09 17:08:45
360
原创 iOS AVCapture 摄像头技术总结
AVCaptureDevice: 信号采集硬件设备(摄像头、麦克风、屏幕等) AVCaptureInput: 设备输入信号 AVCaptureOutput:设备输出信号 AVCaptureSession:AVCaptureSession是整个Capture的核心。类似于RunLoop,它不断的从输入源获取数据,然后分发给各个输出源。 AVCaptureConnection:AVCaptur...
2020-01-07 22:02:06
1320
原创 解决 NSTimer 循环引用问题
1、NSProxy@implementation FirViewController- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor orangeColor]; self.navigationItem.leftBarButtonItem = [[...
2020-01-03 16:33:49
252
原创 GCD 串行/并行、同步/异步 组合
串行/并行:决定怎么拿任务,串行 - 一个任务完成再拿下一个,并行 - 同时拿多个。同步/异步:决定怎么取线程,同步 - 不开新线程,异步:具备开多条线程能力同步、串行:一个一个执行,不开线程。同步、并行:一个一个执行,不开线程。异步、串行:一个一个执行,开一条线程。异步、并行:多个同时执行,开多条线程。- (void)viewDidLoad { [supe...
2019-12-22 14:36:58
470
原创 clang 报错处理
clang -rewrite-objc main.m可能报错:main.m:9:9: fatal error: 'UIKit/UIKit.h' file not found下面是在网上其他大神记录的,亲测可用!指定真机xcrun -sdk iphoneos clang -rewrite-objc main.m指定模拟器xcrun -sdk iphonesimul...
2019-12-20 20:11:13
553
原创 iOS 文章收藏
mark 一下RunTimehttps://www.jianshu.com/p/6ebda3cd8052clanghttps://www.jianshu.com/p/513a9bd35a7drunloophttp://www.cocoachina.com/articles/23380https://www.jianshu.com/p/46435c6a63afhttp...
2019-12-14 16:26:49
271
原创 Block 原理
int main(int argc, char * argv[]) { @autoreleasepool { void (^block)(void) = ^{ NSLog(@"Hello World!"); }; block(); //return UIApplicationMain(argc, ar...
2019-12-11 21:16:08
368
原创 获取当前显示viewcontroller
+ (UIViewController *)currentTopPresentedViewController{ UIViewController *rootViewController = APPDelegate.window.rootViewController; UIViewController *currentVC = [self getCurrentVCFr...
2019-11-28 09:48:21
263
转载 ReactiveCoacoa ,pod 引用
1.如果你只是纯 swift 项目,你继续使用 ReactiveCocoa 。但是 RAC 依赖于 ReactiveSwift ,等于你引入了两个库。这种情况下的podfile的文件如下: use_frameworks! target 'Target名称' do #use_frameworks! pod 'ReactiveCocoa', '5.0.0-...
2019-11-13 14:10:38
196
转载 多线程下载同一个文件(断点下载)
HTTP Range的示例通过设置Range可以指定每次从网路下载数据包的大小Range示例bytes=0-499 从0到499的头500个字节bytes=500-999 从500到999的第二个500字节bytes=500- 从500字节以后的所有字节bytes=-500 最后500个字节bytes=500-599,800-899 同时指定几个范围Range小结- 用于分隔前...
2019-09-04 22:02:05
637
转载 常用layer
一、CAEmitterLayerCAEmitterLayer是CoreAnimation框架中的粒子发射层,在以前的一片博客中有详细的介绍和范例,这里不再重复,地址如下:粒子效果的应用和火焰范例:http://my.oschina.net/u/2340880/blog/485095二、CAGradientLayerCAGradientLayer是用于...
2019-08-29 16:58:11
409
原创 xcode免证书调试
最近在开发react-native项目,发现仅仅使用xcode模拟器不行,有的时候还要在手机上运行测试才行,此时我们又没有证书,所以有了此篇教程无线打包运行放在最后打开 xcode -> preferences2.png切换到accounts -> 点击左下角添加Apple ID -> 输入自己的apple ID -> 验证完成之后选中自己的apple...
2019-08-26 11:00:36
695
原创 判断observer 观察了哪些keyPath
@interface ObjTest1 : NSObject@property (nonatomic, copy) NSString *name;@property (nonatomic, copy) NSString *path;@end@implementation ObjTest1@end@interface ObjTest2 : NSObject@end@i...
2019-08-03 13:51:07
744
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人