From 2c38801591d4b5bb0bab7d4677071e642d3552a4 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 9 Sep 2020 11:56:40 +0800 Subject: [PATCH 001/145] =?UTF-8?q?=E5=BE=AE=E5=8D=9A=E5=8F=91=E7=8E=B0?= =?UTF-8?q?=E9=A1=B5ScrollView=E5=B5=8C=E5=A5=97=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SLScrollViewWeibo.m" | 54 +++++++++++-------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewWeibo.m" "b/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewWeibo.m" index 597a0aa9..4105046b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewWeibo.m" +++ "b/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewWeibo.m" @@ -14,7 +14,7 @@ ///mainScrollView头部高度 static CGFloat mainScrollViewHeadHeight = 250; ///选项卡/菜单栏高度 -static CGFloat tabHeight = 50; +static CGFloat tabHeight = 64; @interface SLScrollViewWeibo () @@ -61,7 +61,7 @@ - (void)setupUI { self.headView.frame = CGRectMake(0, 0, 100, 100); self.headView.center = CGPointMake(SL_kScreenWidth/2.0, mainScrollViewHeadHeight/2.0); - self.containerView.frame = CGRectMake(0, mainScrollViewHeadHeight, SL_kScreenWidth, SL_kScreenHeight-SL_TopNavigationBarHeight); + self.containerView.frame = CGRectMake(0, mainScrollViewHeadHeight, SL_kScreenWidth, SL_kScreenHeight); [self.mainScrollView addSubview:self.containerView]; self.mainScrollView.contentSize = CGSizeMake(SL_kScreenWidth, mainScrollViewHeadHeight+self.containerView.sl_height); @@ -84,6 +84,7 @@ - (void)setupUI { for (int i = 0; i < self.menuView.titles.count; i++) { SLPanTableView *tableView = [self subTableView]; tableView.tag = 10+i; + tableView.scrollEnabled = NO; tableView.frame = CGRectMake(i*self.tabScrollView.sl_width, 0, self.tabScrollView.sl_width, self.tabScrollView.sl_height); [self.tabScrollView addSubview:tableView]; } @@ -108,7 +109,7 @@ - (UIView *)navigationView { [nav_return_white mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(10); make.size.mas_equalTo(CGSizeMake(15, 20)); - make.bottom.mas_equalTo(-10); + make.bottom.mas_equalTo(-20); }]; } return _navigationView; @@ -117,13 +118,19 @@ - (UIScrollView *)mainScrollView { if (!_mainScrollView) { _mainScrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds]; _mainScrollView.delegate = self; - _mainScrollView.bounces = NO; _mainScrollView.showsVerticalScrollIndicator = NO; _mainScrollView.backgroundColor = [UIColor colorWithRed:11/255.0 green:112/255.0 blue:230/255.0 alpha:1.0]; if (@available(iOS 11.0, *)) { _mainScrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; } else { } + SL_WeakSelf + _mainScrollView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + weakSelf.dataCount = 20; + [weakSelf.mainScrollView.mj_header endRefreshing]; + }); + }]; } return _mainScrollView; } @@ -147,7 +154,7 @@ - (UIView *)containerView { - (SLMenuView *)menuView { if (!_menuView) { _menuView = [[SLMenuView alloc] init]; - _menuView.backgroundColor = [UIColor colorWithRed:248/255.0 green:248/255.0 blue:248/255.0 alpha:1.0]; + _menuView.backgroundColor = [UIColor orangeColor]; _menuView.delegate = self; _menuView.layer.borderWidth = 1.0; _menuView.layer.borderColor = [UIColor colorWithRed:228/255.0 green:228/255.0 blue:228/255.0 alpha:1.0].CGColor; @@ -200,7 +207,11 @@ - (SLPanTableView *)subTableView { #pragma mark - EventsHandle - (void)back { - [self.navigationController popViewControllerAnimated:YES]; + if (self.isTopHovering) { + [self.mainScrollView setContentOffset:CGPointZero animated:YES]; + }else { + [self.navigationController popViewControllerAnimated:YES]; + } } #pragma mark - HelpMethods @@ -250,19 +261,15 @@ - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView == self.tabScrollView) return; - if (scrollView == self.mainScrollView) { - if (self.mainScrollView.contentOffset.y >= mainScrollViewHeadHeight-SL_TopNavigationBarHeight || _isTopHovering) { - //滑到顶部悬停 - _isTopHovering = YES; - self.mainScrollView.contentOffset = CGPointMake(0, mainScrollViewHeadHeight-SL_TopNavigationBarHeight); - } - if(_isTopHovering) { - self.navigationController.navigationBar.hidden = NO; - }else { - self.navigationController.navigationBar.hidden = YES; - } - } +// if (scrollView == self.mainScrollView) { +// if (self.mainScrollView.contentOffset.y >= mainScrollViewHeadHeight || _isTopHovering) { +// //滑到顶部悬停 +// _isTopHovering = YES; +// self.mainScrollView.contentOffset = CGPointMake(0, mainScrollViewHeadHeight); +// } +// } + /* //子列表 if (scrollView.superview == self.tabScrollView) { if(!_isTopHovering && self.mainScrollView.contentOffset.y > 0) { @@ -276,13 +283,14 @@ - (void)scrollViewDidScroll:(UIScrollView *)scrollView { } if(_isTopHovering && scrollView.contentOffset.y > 0) { //如果主mainScrollView在顶部悬停,而此时选项子列表subTableView还未到顶部,则保持mainScrollView继续悬停 - self.mainScrollView.contentOffset = CGPointMake(0, mainScrollViewHeadHeight-SL_TopNavigationBarHeight); - } - if (scrollView.contentOffset.y < 0) { - //如果subTableView滑动到了顶部,即将取消顶部悬停 - _isTopHovering = NO; + self.mainScrollView.contentOffset = CGPointMake(0, mainScrollViewHeadHeight); } +// if (scrollView.contentOffset.y < 0) { +// //如果subTableView滑动到了顶部,即将取消顶部悬停 +// _isTopHovering = NO; +// } } + */ } - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { if (scrollView == self.tabScrollView) { From a2dd2c20e05259fd3b7501c36fd614f8e1e5882a Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 14 Sep 2020 18:17:37 +0800 Subject: [PATCH 002/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 2 ++ ...207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 3 +++ 2 files changed, 5 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index d86f99ec..378d7141 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -83,6 +83,7 @@ * 8、[iOS Rendering 渲染全解析(长文干货)](https://juejin.im/post/6844904162765832206) * 9、[iOS | 面试知识整理 - OC基础 (二)](https://juejin.im/post/6844903945052110856) * 10、[各种精选面试题](https://github.com/iOShuyang/Book-Recommended-Interview) +* 11、[iOS | 面试知识整理 - Swift 基础(九)](https://juejin.im/post/6844903955156336654) ## 四、逆向与安全 @@ -100,6 +101,7 @@ * 1、DSBridge /JSBridge /JSPatch/ * 2、[写给自己看系列之WebViewJavascriptBridge源码分析](https://juejin.im/post/6844904097192247303) +* 3、[OCRunner:完全体的iOS热修复方案](https://silverfruity.github.io/2020/09/04/OCRunner/) ## 七、Shell脚本 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index 235b7984..129900c4 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -55,6 +55,8 @@ * 53、[Mr_Coder](https://juejin.im/user/3544481220795998) * 54、[冬瓜逛逼乎](https://www.zhihu.com/people/desgard-duan) * 55、[bestswifter](https://github.com/bestswifter) +* 56、[SilverFruity](https://silverfruity.github.io/) +* 57、[孤单的衬衣](https://juejin.im/user/2735240661962638) ## 高质量微信公众号 @@ -72,3 +74,4 @@ * 12、[iOS成长之路](公众号:gh_fa77b2df3538) * 13、[京东零售技术](公众号:jd-sys) * 14、[携程技术](公众号:ctriptech) +* 15、[字节跳动技术团队](公众号:toutiaotechblog) From 70445d627bc326d6aa1ca77c11d9e8f56863e526 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 14 Sep 2020 18:47:10 +0800 Subject: [PATCH 003/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + ...1\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 1 + 2 files changed, 2 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 378d7141..8f285407 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -84,6 +84,7 @@ * 9、[iOS | 面试知识整理 - OC基础 (二)](https://juejin.im/post/6844903945052110856) * 10、[各种精选面试题](https://github.com/iOShuyang/Book-Recommended-Interview) * 11、[iOS | 面试知识整理 - Swift 基础(九)](https://juejin.im/post/6844903955156336654) +* 12、[iOSDevLevelingUp](https://github.com/ShannonChenCHN/iOSDevLevelingUp) ## 四、逆向与安全 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index 129900c4..bbd3e4bc 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -57,6 +57,7 @@ * 55、[bestswifter](https://github.com/bestswifter) * 56、[SilverFruity](https://silverfruity.github.io/) * 57、[孤单的衬衣](https://juejin.im/user/2735240661962638) +* 58、[ShannonChenCHN](https://github.com/ShannonChenCHN) ## 高质量微信公众号 From 8f2d24c08aae10fca31d7f9d71417f8ecf161510 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 15 Sep 2020 10:11:35 +0800 Subject: [PATCH 004/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 8f285407..7436dff4 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -92,6 +92,7 @@ * 2、 [iOS程序员的自我修养 - 编译、链接、装载](https://juejin.im/post/5d5273b1f265da03f233c2d6) * 3、[[iOS翻译]编译器](https://juejin.im/post/6854573220612931592) * 4、[Injection:iOS热重载背后的黑魔法](https://mp.weixin.qq.com/s/hFnHdOP6pmIwzZck-zXE8g) +* 5、[高效逆向 - 为任意iOS App生成符号表](https://github.com/imoldman/DSYMCreator) ## 五、音视频 From b3703c963f3b0e71ca35eabfd03993045135716e Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 15 Sep 2020 10:22:46 +0800 Subject: [PATCH 005/145] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DarkMode/WKWebView/WebNative/SLWebNativeViewController.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iOS_Tips/DarkMode/WKWebView/WebNative/SLWebNativeViewController.m b/iOS_Tips/DarkMode/WKWebView/WebNative/SLWebNativeViewController.m index 30ffa9ec..c6e2a2cd 100644 --- a/iOS_Tips/DarkMode/WKWebView/WebNative/SLWebNativeViewController.m +++ b/iOS_Tips/DarkMode/WKWebView/WebNative/SLWebNativeViewController.m @@ -260,7 +260,7 @@ -(void)observeValueForKeyPath:(NSString *)keyPath // 页面加载完成之后调用 - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation { [self.frameArray removeAllObjects]; - //根据服务器下发的标签相关的数据,用原生组件展示,这里原生组件的创建要注意按需加载和复用,类似于tableView,否则对内存还是有不小的消耗的。目前还没做处理 + //根据服务器下发的标签相关的数据,用原生组件展示,这里原生组件的创建要注意按需加载和复用,类似于tableView,否则对内存还是有不小的消耗的。 int i = 0; SL_WeakSelf; for (SLWebNativeModel *model in self.dataSource) { From bee31474118856a715357d50de2bc0dca079687a Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 15 Sep 2020 11:57:53 +0800 Subject: [PATCH 006/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index bbd3e4bc..7209e496 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -58,6 +58,7 @@ * 56、[SilverFruity](https://silverfruity.github.io/) * 57、[孤单的衬衣](https://juejin.im/user/2735240661962638) * 58、[ShannonChenCHN](https://github.com/ShannonChenCHN) +* 59、[木子Lision](https://github.com/Lision) ## 高质量微信公众号 From c8d78b3a248d58f90cc63119d0cabae03a97013a Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 15 Sep 2020 16:17:10 +0800 Subject: [PATCH 007/145] =?UTF-8?q?=E5=BE=AE=E5=8D=9A=E5=8F=91=E7=8E=B0?= =?UTF-8?q?=E9=A1=B5ScrollView=E5=B5=8C=E5=A5=97=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SLScrollViewWeibo.m" | 75 +++++++++---------- 1 file changed, 34 insertions(+), 41 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewWeibo.m" "b/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewWeibo.m" index 4105046b..b71e84ea 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewWeibo.m" +++ "b/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewWeibo.m" @@ -29,9 +29,6 @@ @interface SLScrollViewWeibo ()= mainScrollViewHeadHeight || _isTopHovering) { -// //滑到顶部悬停 -// _isTopHovering = YES; -// self.mainScrollView.contentOffset = CGPointMake(0, mainScrollViewHeadHeight); -// } -// } - - /* - //子列表 - if (scrollView.superview == self.tabScrollView) { - if(!_isTopHovering && self.mainScrollView.contentOffset.y > 0) { - //如果主mainScrollView还未到顶部悬停,则选项子列表subTableView偏移量保持不变 - //如果主mainScrollView还未到顶部悬停,则选项子列表subTableView偏移量保持不变 - if (scrollView.contentOffset.y < 0) { - self.lastContentOffset = CGPointZero; - } - scrollView.contentOffset = self.lastContentOffset; - - } - if(_isTopHovering && scrollView.contentOffset.y > 0) { - //如果主mainScrollView在顶部悬停,而此时选项子列表subTableView还未到顶部,则保持mainScrollView继续悬停 + if (scrollView == self.mainScrollView) { + if (self.mainScrollView.contentOffset.y >= mainScrollViewHeadHeight && !_isTopHovering) { + //滑到顶部悬停 + _isTopHovering = YES; + self.mainScrollView.scrollEnabled = NO; + self.mainScrollView.bounces = NO; self.mainScrollView.contentOffset = CGPointMake(0, mainScrollViewHeadHeight); + for (int i = 0; i < self.menuView.titles.count; i++) { + UIView *subView = [self.tabScrollView viewWithTag:10+i]; + if ([subView isKindOfClass:[UITableView class]]) { + [(UITableView *)subView setScrollEnabled:YES]; + } + } } -// if (scrollView.contentOffset.y < 0) { -// //如果subTableView滑动到了顶部,即将取消顶部悬停 -// _isTopHovering = NO; -// } } - */ } - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { if (scrollView == self.tabScrollView) { self.menuView.currentPage = roundf(self.tabScrollView.contentOffset.x/self.tabScrollView.sl_width); - self.lastContentOffset = [self currentSubListTabView].contentOffset; } } - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView { if (scrollView == self.tabScrollView) { self.menuView.currentPage = roundf(self.tabScrollView.contentOffset.x/self.tabScrollView.sl_width); - self.lastContentOffset = [self currentSubListTabView].contentOffset; + } + + if (scrollView == self.mainScrollView && self.mainScrollView.contentOffset.y != mainScrollViewHeadHeight) { + _isTopHovering = NO; + self.mainScrollView.scrollEnabled = YES; + self.mainScrollView.bounces = YES; + for (int i = 0; i < self.menuView.titles.count; i++) { + UIView *subView = [self.tabScrollView viewWithTag:10+i]; + if ([subView isKindOfClass:[UITableView class]]) { + [(UITableView *)subView setScrollEnabled:NO]; + [(UITableView *)subView setContentOffset:CGPointZero]; + } + } } } From 04eb9c29588a08111b3e7b757b38be2a8c02f775 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 15 Sep 2020 17:07:06 +0800 Subject: [PATCH 008/145] =?UTF-8?q?ScrollView=E5=B5=8C=E5=A5=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/DarkMode.xcodeproj/project.pbxproj | 6 + .../SLScrollViewJianShu.h" | 17 + .../SLScrollViewJianShu.m" | 302 ++++++++++++++++++ .../SLScrollViewJuejin.m" | 5 +- .../SLScrollViewWeibo.m" | 2 - .../SLScrollviewNesteVC.m" | 7 +- 6 files changed, 332 insertions(+), 7 deletions(-) create mode 100644 "iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewJianShu.h" create mode 100644 "iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewJianShu.m" diff --git a/iOS_Tips/DarkMode.xcodeproj/project.pbxproj b/iOS_Tips/DarkMode.xcodeproj/project.pbxproj index 59d1e6e7..3bb416a6 100644 --- a/iOS_Tips/DarkMode.xcodeproj/project.pbxproj +++ b/iOS_Tips/DarkMode.xcodeproj/project.pbxproj @@ -161,6 +161,7 @@ 78D30965239688EF00DC373A /* GLESMath.c in Sources */ = {isa = PBXBuildFile; fileRef = 78D30960239688EF00DC373A /* GLESMath.c */; }; 78DAA113235FF61E00A60F64 /* SLEditVideoClipping.m in Sources */ = {isa = PBXBuildFile; fileRef = 78DAA112235FF61E00A60F64 /* SLEditVideoClipping.m */; }; 78DAA1162360256200A60F64 /* SLEditSelectedBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 78DAA1152360256200A60F64 /* SLEditSelectedBox.m */; }; + 78DF7F652510B45000F6C007 /* SLScrollViewJianShu.m in Sources */ = {isa = PBXBuildFile; fileRef = 78DF7F642510B45000F6C007 /* SLScrollViewJianShu.m */; }; 78E1791723517F700007E4BB /* SLImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 78E1791223517F700007E4BB /* SLImageView.m */; }; 78E1791823517F700007E4BB /* SLImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 78E1791323517F700007E4BB /* SLImage.m */; }; 78E1791923517F700007E4BB /* SLImageDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 78E1791423517F700007E4BB /* SLImageDecoder.m */; }; @@ -473,6 +474,8 @@ 78DAA112235FF61E00A60F64 /* SLEditVideoClipping.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SLEditVideoClipping.m; sourceTree = ""; }; 78DAA1142360256200A60F64 /* SLEditSelectedBox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SLEditSelectedBox.h; sourceTree = ""; }; 78DAA1152360256200A60F64 /* SLEditSelectedBox.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SLEditSelectedBox.m; sourceTree = ""; }; + 78DF7F632510B45000F6C007 /* SLScrollViewJianShu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SLScrollViewJianShu.h; sourceTree = ""; }; + 78DF7F642510B45000F6C007 /* SLScrollViewJianShu.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SLScrollViewJianShu.m; sourceTree = ""; }; 78E1791123517F700007E4BB /* SLImageDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SLImageDecoder.h; sourceTree = ""; }; 78E1791223517F700007E4BB /* SLImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SLImageView.m; sourceTree = ""; }; 78E1791323517F700007E4BB /* SLImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SLImage.m; sourceTree = ""; }; @@ -962,6 +965,8 @@ 78908DF925078F84004164C2 /* SLScrollViewJuejin.m */, 78908DFB25079323004164C2 /* SLScrollViewWeibo.h */, 78908DFC25079323004164C2 /* SLScrollViewWeibo.m */, + 78DF7F632510B45000F6C007 /* SLScrollViewJianShu.h */, + 78DF7F642510B45000F6C007 /* SLScrollViewJianShu.m */, 78908DFE25079451004164C2 /* SLPanTableView.h */, 78908DFF25079451004164C2 /* SLPanTableView.m */, 78908DCB2500F099004164C2 /* SLMenuView.h */, @@ -1500,6 +1505,7 @@ 78FA0FA02354141E003E456B /* SLAvEditExport.m in Sources */, 78A179A8249B0AA8006F52E3 /* NSDictionary+SLExtension.m in Sources */, 78BDE050248E0AFB002ED386 /* SLWebNativeViewController.m in Sources */, + 78DF7F652510B45000F6C007 /* SLScrollViewJianShu.m in Sources */, 78F42023237915730093497C /* SLGPUImageController.m in Sources */, 7860D791239922B4008C53EC /* SLGLKPyramidVC.m in Sources */, 787C7DC3245D74E4005DF7ED /* NSString+SLCrashProtector.m in Sources */, diff --git "a/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewJianShu.h" "b/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewJianShu.h" new file mode 100644 index 00000000..f046e1fb --- /dev/null +++ "b/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewJianShu.h" @@ -0,0 +1,17 @@ +// +// SLScrollViewJianShu.h +// DarkMode +// +// Created by wsl on 2020/9/15. +// Copyright © 2020 https://github.com/wsl2ls ----- . All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SLScrollViewJianShu : UIViewController + +@end + +NS_ASSUME_NONNULL_END diff --git "a/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewJianShu.m" "b/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewJianShu.m" new file mode 100644 index 00000000..b94ff87d --- /dev/null +++ "b/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewJianShu.m" @@ -0,0 +1,302 @@ +// +// SLScrollViewJianShu.m +// DarkMode +// +// Created by wsl on 2020/9/15. +// Copyright © 2020 https://github.com/wsl2ls ----- . All rights reserved. +// + +#import "SLScrollViewJianShu.h" +#import "SLMenuView.h" +#import +#import "SLPanTableView.h" + +///mainScrollView头部高度 +static CGFloat mainScrollViewHeadHeight = 250; +///选项卡/菜单栏高度 +static CGFloat tabHeight = 50; + +@interface SLScrollViewJianShu () + + +@property (nonatomic, strong) UIView *navigationView; +@property (nonatomic, strong) UIScrollView *mainScrollView; +@property (nonatomic, strong) UIImageView *headView; +@property (nonatomic, assign) BOOL isTopHovering; //正在顶部悬停 + +@property (nonatomic, strong) UIView *containerView; +@property (nonatomic, strong) SLMenuView *menuView; +@property (nonatomic, strong) UIScrollView *tabScrollView; + +//默认 20 +@property (nonatomic, assign) NSInteger dataCount; +//滑动到当前子列表时的偏移量,主要处理顶部未悬停且子列表未置顶偏移量不为0时的情况 +@property (nonatomic, assign) CGPoint lastContentOffset; +@end + +@implementation SLScrollViewJianShu + +#pragma mark - Override +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = [UIColor whiteColor]; + [self setupUI]; + [self getData]; +} +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + self.navigationController.navigationBar.hidden = YES; +} +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; + self.navigationController.navigationBar.hidden = NO; +} + +#pragma mark - UI +- (void)setupUI { + + [self.view addSubview:self.mainScrollView]; + + [self.mainScrollView addSubview:self.headView]; + self.headView.frame = CGRectMake(0, 0, 100, 100); + self.headView.center = CGPointMake(SL_kScreenWidth/2.0, mainScrollViewHeadHeight/2.0); + + self.containerView.frame = CGRectMake(0, mainScrollViewHeadHeight, SL_kScreenWidth, SL_kScreenHeight-SL_TopNavigationBarHeight); + [self.mainScrollView addSubview:self.containerView]; + self.mainScrollView.contentSize = CGSizeMake(SL_kScreenWidth, mainScrollViewHeadHeight+self.containerView.sl_height); + + [self.containerView addSubview:self.menuView]; + [self.menuView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(0); + make.height.mas_equalTo(tabHeight); + }]; + self.menuView.titles = @[@"你好",@"我好",@"大家好"]; + self.menuView.currentPage = 0; + + [self.containerView addSubview:self.tabScrollView]; + [self.tabScrollView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.containerView); + make.top.mas_equalTo(tabHeight); + }]; + [self.containerView layoutIfNeeded]; + self.tabScrollView.contentSize = CGSizeMake(SL_kScreenWidth*self.menuView.titles.count,self.tabScrollView.frame.size.height); + + for (int i = 0; i < self.menuView.titles.count; i++) { + SLPanTableView *tableView = [self subTableView]; + tableView.tag = 10+i; + tableView.frame = CGRectMake(i*self.tabScrollView.sl_width, 0, self.tabScrollView.sl_width, self.tabScrollView.sl_height); + [self.tabScrollView addSubview:tableView]; + } + + [self.view addSubview:self.navigationView]; +} + +#pragma mark - Data +- (void)getData { + self.dataCount = 20; + [[self currentSubListTabView].mj_header beginRefreshing]; +} + +#pragma mark - Getter +- (UIView *)navigationView { + if (!_navigationView) { + _navigationView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,SL_kScreenWidth , SL_TopNavigationBarHeight)]; + _navigationView.backgroundColor = [UIColor clearColor]; + UIButton *nav_return_white = [[UIButton alloc] init]; + [nav_return_white setImage:[UIImage imageNamed:@"nav_return_white"] forState:UIControlStateNormal]; + [nav_return_white addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside]; + [_navigationView addSubview:nav_return_white]; + [nav_return_white mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(10); + make.size.mas_equalTo(CGSizeMake(15, 20)); + make.bottom.mas_equalTo(-10); + }]; + } + return _navigationView; +} +- (UIScrollView *)mainScrollView { + if (!_mainScrollView) { + _mainScrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds]; + _mainScrollView.delegate = self; + _mainScrollView.bounces = YES; + _mainScrollView.showsVerticalScrollIndicator = NO; + _mainScrollView.backgroundColor = [UIColor colorWithRed:11/255.0 green:112/255.0 blue:230/255.0 alpha:1.0]; + if (@available(iOS 11.0, *)) { + _mainScrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } else { + } + } + return _mainScrollView; +} +- (UIImageView *)headView { + if (!_headView) { + _headView = [[UIImageView alloc] init]; + _headView.image = [UIImage imageNamed:@"wsl"]; + _headView.contentMode = UIViewContentModeScaleAspectFit; + _headView.layer.cornerRadius = 50; + _headView.clipsToBounds = YES; + } + return _headView; +} +- (UIView *)containerView { + if (!_containerView) { + _containerView = [[UIView alloc] init]; + _containerView.backgroundColor = [UIColor redColor]; + } + return _containerView; +} +- (SLMenuView *)menuView { + if (!_menuView) { + _menuView = [[SLMenuView alloc] init]; + _menuView.backgroundColor = [UIColor colorWithRed:248/255.0 green:248/255.0 blue:248/255.0 alpha:1.0]; + _menuView.delegate = self; + _menuView.layer.borderWidth = 1.0; + _menuView.layer.borderColor = [UIColor colorWithRed:228/255.0 green:228/255.0 blue:228/255.0 alpha:1.0].CGColor; + } + return _menuView; +} +- (UIScrollView *)tabScrollView { + if (!_tabScrollView) { + _tabScrollView = [[UIScrollView alloc] init]; + _tabScrollView.backgroundColor = [UIColor blueColor]; + _tabScrollView.pagingEnabled = YES; + _tabScrollView.delegate = self; + _tabScrollView.bounces = NO; + if (@available(iOS 11.0, *)) { + _tabScrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } else { + } + } + return _tabScrollView; +} +- (SLPanTableView *)subTableView { + SLPanTableView *tableView = [[SLPanTableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + tableView.delegate = self; + tableView.dataSource = self; + tableView.estimatedRowHeight = 0; + if (@available(iOS 11.0, *)) { + tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } else { + } + [tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cellId"]; + SL_WeakSelf; + tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + weakSelf.dataCount = 20; + [tableView reloadData]; + [tableView.mj_header endRefreshing]; + }); + }]; + tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{ + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + weakSelf.dataCount += 20; + [tableView reloadData]; + [tableView.mj_footer endRefreshing]; + }); + }]; + return tableView; +} + +#pragma mark - EventsHandle +- (void)back { + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - HelpMethods +///当前子列表 +- (SLPanTableView *)currentSubListTabView { + return [self.tabScrollView viewWithTag:10+self.menuView.currentPage]; +} + +#pragma mark - UITableViewDelegate,UITableViewDataSource +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.dataCount; +} +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 88; +} +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + return 0.1; +} +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + return nil; +} +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + return 0.1; +} +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + return nil; +} +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"cellId" forIndexPath:indexPath]; + cell.textLabel.text = [NSString stringWithFormat:@"%ld",indexPath.row]; + return cell; +} +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; +} + +#pragma mark - SLMenuViewDelegate +- (void)menuView:(SLMenuView *)menuView didSelectItemAtIndex:(NSInteger)index { + [self.tabScrollView setContentOffset:CGPointMake(index* self.tabScrollView.sl_width, 0) animated:YES]; +} + +#pragma mark - UIScrollViewDelegate +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + + if (scrollView == self.tabScrollView) return; + + if (scrollView == self.mainScrollView) { + if (self.mainScrollView.contentOffset.y >= mainScrollViewHeadHeight-SL_TopNavigationBarHeight || _isTopHovering) { + //滑到顶部悬停 + _isTopHovering = YES; + self.mainScrollView.contentOffset = CGPointMake(0, mainScrollViewHeadHeight-SL_TopNavigationBarHeight); + } + if(_isTopHovering) { + self.navigationController.navigationBar.hidden = NO; + }else { + self.navigationController.navigationBar.hidden = YES; + } + + if (self.mainScrollView.contentOffset.y <= 0 ) { + //头部放大 + self.headView.transform = CGAffineTransformMakeScale(fabs(self.mainScrollView.contentOffset.y)/self.headView.sl_height+1, fabs(self.mainScrollView.contentOffset.y)/self.headView.sl_height+1); + } + } + + //子列表 + if (scrollView.superview == self.tabScrollView) { + if((!_isTopHovering && self.mainScrollView.contentOffset.y > 0) || (self.mainScrollView.contentOffset.y < 0 ) ) { + //如果主mainScrollView还未到顶部悬停,则选项子列表subTableView偏移量保持不变 + if (scrollView.contentOffset.y < 0) { + self.lastContentOffset = CGPointZero; + } + scrollView.contentOffset = self.lastContentOffset; + } + if(_isTopHovering && scrollView.contentOffset.y > 0) { + //如果主mainScrollView在顶部悬停,而此时选项子列表subTableView还未到顶部,则保持mainScrollView继续悬停 + self.mainScrollView.contentOffset = CGPointMake(0, mainScrollViewHeadHeight-SL_TopNavigationBarHeight); + } + if (scrollView.contentOffset.y < 0) { + //如果subTableView滑动到了顶部,即将取消顶部悬停 + _isTopHovering = NO; + } + } +} +- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { + if (scrollView == self.tabScrollView) { + self.menuView.currentPage = roundf(self.tabScrollView.contentOffset.x/self.tabScrollView.sl_width); + self.lastContentOffset = [self currentSubListTabView].contentOffset; + } +} +- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView { + if (scrollView == self.tabScrollView) { + self.menuView.currentPage = roundf(self.tabScrollView.contentOffset.x/self.tabScrollView.sl_width); + self.lastContentOffset = [self currentSubListTabView].contentOffset; + } +} + +@end diff --git "a/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewJuejin.m" "b/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewJuejin.m" index b63e05dc..18bb53ad 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewJuejin.m" +++ "b/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewJuejin.m" @@ -40,8 +40,8 @@ @implementation SLScrollViewJuejin - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; - [self getData]; [self setupUI]; + [self getData]; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; @@ -94,6 +94,7 @@ - (void)setupUI { #pragma mark - Data - (void)getData { self.dataCount = 20; + [[self currentSubListTabView].mj_header beginRefreshing]; } #pragma mark - Getter @@ -196,8 +197,6 @@ - (SLPanTableView *)subTableView { return tableView; } -#pragma mark - Data - #pragma mark - EventsHandle - (void)back { [self.navigationController popViewControllerAnimated:YES]; diff --git "a/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewWeibo.m" "b/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewWeibo.m" index b71e84ea..5261431c 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewWeibo.m" +++ "b/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollViewWeibo.m" @@ -200,8 +200,6 @@ - (UITableView *)subTableView { return tableView; } -#pragma mark - Data - #pragma mark - EventsHandle - (void)back { if (self.isTopHovering) { diff --git "a/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollviewNesteVC.m" "b/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollviewNesteVC.m" index ec7e0298..8b9b7807 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollviewNesteVC.m" +++ "b/iOS_Tips/DarkMode/WorkIssues/ScrollView\345\265\214\345\245\227/SLScrollviewNesteVC.m" @@ -9,6 +9,7 @@ #import "SLScrollviewNesteVC.h" #import "SLScrollViewJuejin.h" #import "SLScrollViewWeibo.h" +#import "SLScrollViewJianShu.h" @interface SLScrollviewNesteVC () @property (nonatomic, strong) NSMutableArray *titlesArray; @@ -41,9 +42,11 @@ - (void)setupUI { - (void)getData { [self.titlesArray addObjectsFromArray:@[ @"掘金APP个人中心页样式", - @"微博发现页ScrollView嵌套样式doing"]]; + @"微博发现页ScrollView嵌套样式", + @"简书APP个人中心页样式"]]; [self.classArray addObjectsFromArray:@[[SLScrollViewJuejin class], - [SLScrollViewWeibo class]]]; + [SLScrollViewWeibo class], + [SLScrollViewJianShu class]]]; [self.tableView reloadData]; } From e299e543a387e53d8b4db624d66a82d6abdb39b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E5=8D=9A=40=E4=B8=94=E8=A1=8C=E4=B8=94=E7=8F=8D?= =?UTF-8?q?=E6=83=9C=5FiOS?= <15324956576@163.com> Date: Tue, 15 Sep 2020 17:28:31 +0800 Subject: [PATCH 009/145] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 43eb0ac9..cfd3506e 100644 --- a/README.md +++ b/README.md @@ -135,6 +135,10 @@ > 扫描项目中无用的图片、类等文件资源, 此示例主要针对于此项目中的图片资源,其他类型资源实现原理相同。 +#### 6.10、多个UIScrollView嵌套/个人中心页 + +![多个UIScrollView嵌套](https://github.com/wsl2ls/iOS_TipsPreview/blob/master/PrviewPicture/多个UIScrollView嵌套.gif) + ## 7-iOSCrash防护 > Crash防护内容涉及 NSArray/NSMutableArray、NSDictionary/NSMutableDictionary、NSString/NSMutableString、Unrecognized Selector、KVO、KVC 、异步线程刷新UI、野指针定位、内存泄漏/循环引用;主要是对常见易错的地方进行容错处理,避免崩溃,并保存出错时的函数调用栈,以方便快速定位代码,主要是利用的runtime和fishook知识。 From 8c76028a7c3fc9fdaab17940180905e9286a38a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E5=8D=9A=40=E4=B8=94=E8=A1=8C=E4=B8=94=E7=8F=8D?= =?UTF-8?q?=E6=83=9C=5FiOS?= <15324956576@163.com> Date: Tue, 15 Sep 2020 17:40:43 +0800 Subject: [PATCH 010/145] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cfd3506e..33b232c0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# iOS_Tips +# [iOS_Tips](https://github.com/wsl2ls/iOS_Tips) > iOS的一些示例,不定时更新~ | [简书 ](https://www.jianshu.com/u/e15d1f644bea) | [掘金](https://juejin.im/user/5c00d97b6fb9a049fb436288) | From b9debb9a2af1b44fc7154d6fad40f51a7a26204f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E5=8D=9A=40=E4=B8=94=E8=A1=8C=E4=B8=94=E7=8F=8D?= =?UTF-8?q?=E6=83=9C=5FiOS?= <15324956576@163.com> Date: Tue, 15 Sep 2020 19:05:49 +0800 Subject: [PATCH 011/145] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 33b232c0..56be18f6 100644 --- a/README.md +++ b/README.md @@ -159,6 +159,7 @@ > * 4、小视频拍摄录制失败,主要集中在plus和X系列手机上:可能是由于写入的视频宽高videoSize设置的问题,各位可以先试试这样设置 avCaptureTool.videoSize = CGSizeMake(self.view.width * 0.8, self.view.height * 0.8); > * 5、当你编译的时候,XCode出现Unable to load contents of file list 错误,导致出现此原因是pods版本不一致,请更新pods版本或者重新安装。 +> * 6、如果发现我简书或掘金上的文章无法查看了,请联系我。 #### Welcome to you 👏 您的follow和start,是我前进的动力,Thanks♪(・ω・)ノ 🤝 From fdf35ede7cfead2a3628e1cb269b9c5639059ae3 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 18 Sep 2020 10:38:22 +0800 Subject: [PATCH 012/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 6 +++++- ...\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 7436dff4..def9d09f 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -98,12 +98,14 @@ * 1、[(强烈推荐)移动端音视频从零到上手](https://juejin.im/post/6844903889007820813) * 2、[移动开发者的必知音视频基础知识](https://juejin.im/post/6844904039503626247) +* 3、[GoPlay是一款基于FFmpeg/OpenGLES2.0的iOS播放器](https://github.com/letqingbin/GoPlay) ## 六、跨平台/热更新 * 1、DSBridge /JSBridge /JSPatch/ * 2、[写给自己看系列之WebViewJavascriptBridge源码分析](https://juejin.im/post/6844904097192247303) * 3、[OCRunner:完全体的iOS热修复方案](https://silverfruity.github.io/2020/09/04/OCRunner/) +* 4、[DynamicOC](https://github.com/letqingbin/DynamicOC) ## 七、Shell脚本 @@ -111,7 +113,6 @@ * 1、[Shell脚本编程30分钟入门](https://github.com/qinjx/30min_guides/blob/master/shell.md) - ## 八、网络 * 1、[TCP序列号和确认号详解](https://blog.csdn.net/fujibao/article/details/80857180) @@ -128,6 +129,9 @@ ## 十、架构/设计模式 +## 十一、优秀三方源码解析 + + ## 其它 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index 7209e496..22028d4b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -59,6 +59,7 @@ * 57、[孤单的衬衣](https://juejin.im/user/2735240661962638) * 58、[ShannonChenCHN](https://github.com/ShannonChenCHN) * 59、[木子Lision](https://github.com/Lision) +* 59、[letqingbin](https://github.com/letqingbin) ## 高质量微信公众号 From 2b9d873047d002de9f5afe818870bd74c7ddd16c Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 18 Sep 2020 15:55:09 +0800 Subject: [PATCH 013/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + ...207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index def9d09f..b10fac7e 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -99,6 +99,7 @@ * 1、[(强烈推荐)移动端音视频从零到上手](https://juejin.im/post/6844903889007820813) * 2、[移动开发者的必知音视频基础知识](https://juejin.im/post/6844904039503626247) * 3、[GoPlay是一款基于FFmpeg/OpenGLES2.0的iOS播放器](https://github.com/letqingbin/GoPlay) +* 4、[CainCamera](https://github.com/CainKernel/blog) ## 六、跨平台/热更新 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index 22028d4b..bd2a7a4d 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -59,7 +59,8 @@ * 57、[孤单的衬衣](https://juejin.im/user/2735240661962638) * 58、[ShannonChenCHN](https://github.com/ShannonChenCHN) * 59、[木子Lision](https://github.com/Lision) -* 59、[letqingbin](https://github.com/letqingbin) +* 59、[letqingbin](https://github.com/letqingbin) +* 60、[CainCamera](https://github.com/CainKernel/blog) ## 高质量微信公众号 From 6ef388ac43ff61b8128ca9d773a18ef479d06c17 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 21 Sep 2020 14:16:43 +0800 Subject: [PATCH 014/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + ...207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index b10fac7e..b859ef58 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -85,6 +85,7 @@ * 10、[各种精选面试题](https://github.com/iOShuyang/Book-Recommended-Interview) * 11、[iOS | 面试知识整理 - Swift 基础(九)](https://juejin.im/post/6844903955156336654) * 12、[iOSDevLevelingUp](https://github.com/ShannonChenCHN/iOSDevLevelingUp) +* 13、[iOS 基础](https://juejin.im/user/940837683069549/posts) ## 四、逆向与安全 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index bd2a7a4d..bc8a30ce 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -60,7 +60,8 @@ * 58、[ShannonChenCHN](https://github.com/ShannonChenCHN) * 59、[木子Lision](https://github.com/Lision) * 59、[letqingbin](https://github.com/letqingbin) -* 60、[CainCamera](https://github.com/CainKernel/blog) +* 60、[CainCamera](https://github.com/CainKernel/blog) +* 60、[行走少年郎](https://juejin.im/user/2488950054725101/posts) ## 高质量微信公众号 From 1f26023f361c001cfb1fa9ddc6fa139cda43c9ed Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 22 Sep 2020 18:06:42 +0800 Subject: [PATCH 015/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SLBinaryResetViewController.h" | 4 +++- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\344\272\214\350\277\233\345\210\266\351\207\215\346\216\222/SLBinaryResetViewController.h" "b/iOS_Tips/DarkMode/WorkIssues/\344\272\214\350\277\233\345\210\266\351\207\215\346\216\222/SLBinaryResetViewController.h" index 5b2b7fbd..21458aeb 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\344\272\214\350\277\233\345\210\266\351\207\215\346\216\222/SLBinaryResetViewController.h" +++ "b/iOS_Tips/DarkMode/WorkIssues/\344\272\214\350\277\233\345\210\266\351\207\215\346\216\222/SLBinaryResetViewController.h" @@ -10,7 +10,9 @@ NS_ASSUME_NONNULL_BEGIN -///二进制重排优化启动时间 参考:https://juejin.im/post/5e97c3c751882573b86f9d00#heading-17 +//参考:https://juejin.im/post/5e97c3c751882573b86f9d00#heading-17 +// https://github.com/rhythmkay/PGOAnalyzer +///二进制重排优化启动时间 @interface SLBinaryResetViewController : SLViewController @end diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index b859ef58..363120f8 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -64,7 +64,8 @@ > [iOS优化篇之App启动时间优化](https://juejin.im/post/6861917375382929415) > [iOS如何提高10倍以上编译速度](https://juejin.im/post/6844904169124397070) > [为什么 Debug Information Format 改为 DWARF 可以提高编译速度?](https://zhuanlan.zhihu.com/p/112764192) -> [移动 APP 网络优化概述](http://blog.cnbang.net/tech/3531/) +> [移动 APP 网络优化概述](http://blog.cnbang.net/tech/3531/) +> [二进制重排-编译插桩与动态trace结合](https://github.com/rhythmkay/PGOAnalyzer) ## 二、数据结构与算法 From f905a4406ce050e20667e8dcb0bc0b2131971372 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 23 Sep 2020 10:14:20 +0800 Subject: [PATCH 016/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + ...217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 363120f8..ff1afeb2 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -95,6 +95,7 @@ * 3、[[iOS翻译]编译器](https://juejin.im/post/6854573220612931592) * 4、[Injection:iOS热重载背后的黑魔法](https://mp.weixin.qq.com/s/hFnHdOP6pmIwzZck-zXE8g) * 5、[高效逆向 - 为任意iOS App生成符号表](https://github.com/imoldman/DSYMCreator) +* 6、[iOS LLVM-Clang 浅谈](https://www.jianshu.com/p/7ceca351a045) ## 五、音视频 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index bc8a30ce..cfb35862 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -59,9 +59,10 @@ * 57、[孤单的衬衣](https://juejin.im/user/2735240661962638) * 58、[ShannonChenCHN](https://github.com/ShannonChenCHN) * 59、[木子Lision](https://github.com/Lision) -* 59、[letqingbin](https://github.com/letqingbin) -* 60、[CainCamera](https://github.com/CainKernel/blog) -* 60、[行走少年郎](https://juejin.im/user/2488950054725101/posts) +* 60、[letqingbin](https://github.com/letqingbin) +* 61、[CainCamera](https://github.com/CainKernel/blog) +* 62、[行走少年郎](https://juejin.im/user/2488950054725101/posts) +* 63、[翻译、开发心得或学习笔记](https://github.com/nixzhu/dev-blog) ## 高质量微信公众号 From 0374db8ff9946e2b562403cef5540ebfe98c9e98 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 23 Sep 2020 10:29:03 +0800 Subject: [PATCH 017/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index ff1afeb2..7f0a3079 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -66,6 +66,7 @@ > [为什么 Debug Information Format 改为 DWARF 可以提高编译速度?](https://zhuanlan.zhihu.com/p/112764192) > [移动 APP 网络优化概述](http://blog.cnbang.net/tech/3531/) > [二进制重排-编译插桩与动态trace结合](https://github.com/rhythmkay/PGOAnalyzer) +> [关于WKWebView 秒开方案](https://www.jianshu.com/p/74fad07ec640) ## 二、数据结构与算法 From cc1f868afad1ae29a12ccab692558318e5513ead Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 23 Sep 2020 11:15:32 +0800 Subject: [PATCH 018/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 7f0a3079..f3f4e3da 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -111,6 +111,7 @@ * 2、[写给自己看系列之WebViewJavascriptBridge源码分析](https://juejin.im/post/6844904097192247303) * 3、[OCRunner:完全体的iOS热修复方案](https://silverfruity.github.io/2020/09/04/OCRunner/) * 4、[DynamicOC](https://github.com/letqingbin/DynamicOC) +* 5、[js-native 通信的 6 种方式](https://mp.weixin.qq.com/s/_Xo6O3NoE1z9AIMJm_uSsA) ## 七、Shell脚本 From 203e28b392d275302f7bae733825521be6244287 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 24 Sep 2020 18:41:12 +0800 Subject: [PATCH 019/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DarkMode/WKWebView/WebTableView/SLScrollViewController.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/iOS_Tips/DarkMode/WKWebView/WebTableView/SLScrollViewController.m b/iOS_Tips/DarkMode/WKWebView/WebTableView/SLScrollViewController.m index 25b5af22..84174e41 100644 --- a/iOS_Tips/DarkMode/WKWebView/WebTableView/SLScrollViewController.m +++ b/iOS_Tips/DarkMode/WKWebView/WebTableView/SLScrollViewController.m @@ -18,7 +18,8 @@ @interface SLScrollView : UIView Date: Fri, 25 Sep 2020 10:00:15 +0800 Subject: [PATCH 020/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\347\254\224\350\256\260.md" | 1 + ...\200\346\234\257\345\215\232\345\256\242.md" | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index f3f4e3da..fb768ca2 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -104,6 +104,7 @@ * 2、[移动开发者的必知音视频基础知识](https://juejin.im/post/6844904039503626247) * 3、[GoPlay是一款基于FFmpeg/OpenGLES2.0的iOS播放器](https://github.com/letqingbin/GoPlay) * 4、[CainCamera](https://github.com/CainKernel/blog) +* 5、[Android 音视频开发学习思路](https://www.cnblogs.com/renhui/p/7452572.html) ## 六、跨平台/热更新 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index cfb35862..ca9aff8a 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -81,3 +81,20 @@ * 13、[京东零售技术](公众号:jd-sys) * 14、[携程技术](公众号:ctriptech) * 15、[字节跳动技术团队](公众号:toutiaotechblog) + + +## 书籍 + +* 1、[iOS全埋点解决方案-神策数据](电子书) +* 2、[跟戴铭学iOS编程:理顺核心知识点 - 戴铭](电子书) +* 3、[程序员的自我修养:链接、装载与库](电子书) +* 4、[iOS动画学习手册2.0](电子书) +* 5、[Objective-C高级编程 iOS与OS X多线程和内存管理](电子书) +* 6、[App架构师实践指南](电子书) +* 7、[OpenGL ES 3.0编程指南 ](电子书) +* 8、[音视频开发进阶指南:基于Android与iOS平台的实践 ](电子书) +* 9、[AVFoundation开发秘籍 ](电子书) +* 10、[计算机网络 ](电子书) +* 11、[计算机操作系统 ](电子书) +* 12、[数据结构与算法 ](电子书) +* 13、[编译原理 ](电子书) From a00aab1ee31f165eae8184f35c30ade2c73fca36 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 25 Sep 2020 11:40:54 +0800 Subject: [PATCH 021/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index fb768ca2..a5e006ba 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -138,6 +138,8 @@ ## 十一、优秀三方源码解析 +* 1、[优秀的三方源码](https://github.com/iOShuyang/Book-Recommend-Github) + ## 其它 From 4be71fe72b2b55e243f629aefbfda437875229a6 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sun, 27 Sep 2020 11:40:12 +0800 Subject: [PATCH 022/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index a5e006ba..7cd696cd 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -123,7 +123,7 @@ ## 八、网络 * 1、[TCP序列号和确认号详解](https://blog.csdn.net/fujibao/article/details/80857180) - +* 2、[探索现代的移动网络](https://mp.weixin.qq.com/s/ds6QkVrBwcurxp3RkvZe8Q) ## 九、效率 From 1e68f8f305d3c9b94cf9a99b8eda26d598326d3e Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 28 Sep 2020 10:05:24 +0800 Subject: [PATCH 023/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + ...1\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 1 + 2 files changed, 2 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 7cd696cd..536e343d 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -88,6 +88,7 @@ * 11、[iOS | 面试知识整理 - Swift 基础(九)](https://juejin.im/post/6844903955156336654) * 12、[iOSDevLevelingUp](https://github.com/ShannonChenCHN/iOSDevLevelingUp) * 13、[iOS 基础](https://juejin.im/user/940837683069549/posts) +* 14、[深入理解RunLoop](https://blog.ibireme.com/2015/05/18/runloop/) ## 四、逆向与安全 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index ca9aff8a..65b5fd41 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -63,6 +63,7 @@ * 61、[CainCamera](https://github.com/CainKernel/blog) * 62、[行走少年郎](https://juejin.im/user/2488950054725101/posts) * 63、[翻译、开发心得或学习笔记](https://github.com/nixzhu/dev-blog) +* 64、[ibireme-YYKit作者](https://blog.ibireme.com) ## 高质量微信公众号 From 0980e80278b447a594d1097ac8c6f6d7d5ee79ee Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 28 Sep 2020 14:55:54 +0800 Subject: [PATCH 024/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 3 ++- ...207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 536e343d..2591c025 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -67,6 +67,7 @@ > [移动 APP 网络优化概述](http://blog.cnbang.net/tech/3531/) > [二进制重排-编译插桩与动态trace结合](https://github.com/rhythmkay/PGOAnalyzer) > [关于WKWebView 秒开方案](https://www.jianshu.com/p/74fad07ec640) +> [如何自建 Crash 平台](https://www.xuyanlan.com/2019/02/20/iOS-crash-report/) ## 二、数据结构与算法 @@ -140,7 +141,7 @@ ## 十一、优秀三方源码解析 * 1、[优秀的三方源码](https://github.com/iOShuyang/Book-Recommend-Github) - +* 2、[波儿菜](https://juejin.im/user/2735240659351112) ## 其它 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index 65b5fd41..4e8af30c 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -82,6 +82,7 @@ * 13、[京东零售技术](公众号:jd-sys) * 14、[携程技术](公众号:ctriptech) * 15、[字节跳动技术团队](公众号:toutiaotechblog) +* 16、[老司机技术周报](公众号:LSJCoding) ## 书籍 From cdc6dde14cdf8c1184e9d07928cca04609e4659b Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 28 Sep 2020 15:12:01 +0800 Subject: [PATCH 025/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index 4e8af30c..e79d533e 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -84,7 +84,6 @@ * 15、[字节跳动技术团队](公众号:toutiaotechblog) * 16、[老司机技术周报](公众号:LSJCoding) - ## 书籍 * 1、[iOS全埋点解决方案-神策数据](电子书) @@ -100,3 +99,8 @@ * 11、[计算机操作系统 ](电子书) * 12、[数据结构与算法 ](电子书) * 13、[编译原理 ](电子书) + +## 找工作内推 + +* [2020:iOS 靠谱内推专题](https://www.yuque.com/iosalliance/article/bhutav) +* [谁在招人?](https://github.com/ruanyf/weekly/issues/1315) From 7626178f655deb8bb9ed51060c30420aa9fcc09b Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 28 Sep 2020 15:27:54 +0800 Subject: [PATCH 026/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 2591c025..505da499 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -107,6 +107,7 @@ * 3、[GoPlay是一款基于FFmpeg/OpenGLES2.0的iOS播放器](https://github.com/letqingbin/GoPlay) * 4、[CainCamera](https://github.com/CainKernel/blog) * 5、[Android 音视频开发学习思路](https://www.cnblogs.com/renhui/p/7452572.html) +* 6、[loyinglin](https://github.com/loyinglin) ## 六、跨平台/热更新 From a1ccf1a6408f87d005435c44989705219ca7bbec Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 29 Sep 2020 09:21:32 +0800 Subject: [PATCH 027/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/DarkMode.xcodeproj/project.pbxproj | 4 ++++ "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 6 ++++++ ...\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 2 +- 4 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 "iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" diff --git a/iOS_Tips/DarkMode.xcodeproj/project.pbxproj b/iOS_Tips/DarkMode.xcodeproj/project.pbxproj index 3bb416a6..2ac84f8d 100644 --- a/iOS_Tips/DarkMode.xcodeproj/project.pbxproj +++ b/iOS_Tips/DarkMode.xcodeproj/project.pbxproj @@ -79,6 +79,7 @@ 7851CB43233222E2002295B5 /* UIView+SLFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 7851CB41233222E2002295B5 /* UIView+SLFrame.m */; }; 7857977823725C21004CD664 /* SLFaceDetectController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7857977723725C21004CD664 /* SLFaceDetectController.m */; }; 7857FD4B24729E8500D3D986 /* BSBacktraceLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 7857FD4A24729E8500D3D986 /* BSBacktraceLogger.m */; }; + 785D06642522C32700F174BA /* 面试题.md in Resources */ = {isa = PBXBuildFile; fileRef = 785D06632522C32700F174BA /* 面试题.md */; }; 7860D78E2398D34E008C53EC /* SLMixColorTextureVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 7860D78D2398D34E008C53EC /* SLMixColorTextureVC.m */; }; 7860D791239922B4008C53EC /* SLGLKPyramidVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 7860D790239922B4008C53EC /* SLGLKPyramidVC.m */; }; 786147F12362A39500C5424C /* Resources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 786147F02362A39500C5424C /* Resources.bundle */; }; @@ -317,6 +318,7 @@ 7857977723725C21004CD664 /* SLFaceDetectController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SLFaceDetectController.m; sourceTree = ""; }; 7857FD4924729E8500D3D986 /* BSBacktraceLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BSBacktraceLogger.h; sourceTree = ""; }; 7857FD4A24729E8500D3D986 /* BSBacktraceLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BSBacktraceLogger.m; sourceTree = ""; }; + 785D06632522C32700F174BA /* 面试题.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = "面试题.md"; sourceTree = ""; }; 7860D78C2398D34E008C53EC /* SLMixColorTextureVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SLMixColorTextureVC.h; sourceTree = ""; }; 7860D78D2398D34E008C53EC /* SLMixColorTextureVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SLMixColorTextureVC.m; sourceTree = ""; }; 7860D78F239922B4008C53EC /* SLGLKPyramidVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SLGLKPyramidVC.h; sourceTree = ""; }; @@ -935,6 +937,7 @@ children = ( 784C4C6F24C5B5DD00D5C199 /* 高质量技术博客.md */, 784C4C6D24C5B4F500D5C199 /* 笔记.md */, + 785D06632522C32700F174BA /* 面试题.md */, 7884247D2492102900C2E505 /* SLWorkIssuesViewController.h */, 7884247E2492102900C2E505 /* SLWorkIssuesViewController.m */, 78908DC024FFBD83004164C2 /* ScrollView嵌套 */, @@ -1410,6 +1413,7 @@ 782CFB6D239E69F3001B5528 /* Scale.fsh in Resources */, 782CFB71239E69FA001B5528 /* Shake.vsh in Resources */, 78B1048B232F57C30051579F /* Main.storyboard in Resources */, + 785D06642522C32700F174BA /* 面试题.md in Resources */, 78799EB224F1027300DA8C7A /* unused.png in Resources */, 782CFB27239DFD89001B5528 /* SplitScreen_1.fsh in Resources */, 783FB4612394A76B0039AEFD /* shaderf.fsh in Resources */, diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 505da499..88f195bc 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -68,6 +68,7 @@ > [二进制重排-编译插桩与动态trace结合](https://github.com/rhythmkay/PGOAnalyzer) > [关于WKWebView 秒开方案](https://www.jianshu.com/p/74fad07ec640) > [如何自建 Crash 平台](https://www.xuyanlan.com/2019/02/20/iOS-crash-report/) +> [iOS客户端稳定性体系](https://778477.github.io/2018/02/23/2018-02-23-iOS客户端稳定性体系/) ## 二、数据结构与算法 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" new file mode 100644 index 00000000..245cad9c --- /dev/null +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -0,0 +1,6 @@ + + +## 面试知识点 + +* 1、 [为什么iOS更新UI操作必须在主线程?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) +* 2、 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index e79d533e..4f56a6a5 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -63,7 +63,7 @@ * 61、[CainCamera](https://github.com/CainKernel/blog) * 62、[行走少年郎](https://juejin.im/user/2488950054725101/posts) * 63、[翻译、开发心得或学习笔记](https://github.com/nixzhu/dev-blog) -* 64、[ibireme-YYKit作者](https://blog.ibireme.com) +* 64、[778477](https://778477.github.io) ## 高质量微信公众号 From c35d95051f407ff506a130650b72f6cf51f73ed7 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 29 Sep 2020 09:30:45 +0800 Subject: [PATCH 028/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 88f195bc..2020f3ff 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -144,6 +144,7 @@ * 1、[优秀的三方源码](https://github.com/iOShuyang/Book-Recommend-Github) * 2、[波儿菜](https://juejin.im/user/2735240659351112) +* 3、[写给自己看系列之WebViewJavascriptBridge源码分析](https://juejin.im/post/6844904097192247303) ## 其它 From ce99072ea72594f85a4fcd00e13b692df88df449 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 29 Sep 2020 09:33:42 +0800 Subject: [PATCH 029/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/DarkMode/.DS_Store | Bin 14340 -> 14340 bytes .../WorkIssues/\347\254\224\350\256\260.md" | 1 + 2 files changed, 1 insertion(+) diff --git a/iOS_Tips/DarkMode/.DS_Store b/iOS_Tips/DarkMode/.DS_Store index 391c9b5974f79831590c0bcac6bf0bc171a695dc..e5fa5b0fb1e5ebf6b6ae4be8472a30e8c86e4bb3 100644 GIT binary patch delta 93 zcmZoEXepTB&*--?U^hRb>f}H{k=}Z6k0X;f;b>kVNquD9_&}0zGq=Jw7*CXOGrPfGb^zpV B60raP diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 2020f3ff..060ace3c 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -69,6 +69,7 @@ > [关于WKWebView 秒开方案](https://www.jianshu.com/p/74fad07ec640) > [如何自建 Crash 平台](https://www.xuyanlan.com/2019/02/20/iOS-crash-report/) > [iOS客户端稳定性体系](https://778477.github.io/2018/02/23/2018-02-23-iOS客户端稳定性体系/) +> [iOS 包瘦身浅析](https://github.com/778477/iOS-LinkMapAnalyzer) ## 二、数据结构与算法 From 192a0045a5d562e5bb979d60730393650a4c3d40 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 29 Sep 2020 09:39:19 +0800 Subject: [PATCH 030/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index 4f56a6a5..f3a97dad 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -64,6 +64,7 @@ * 62、[行走少年郎](https://juejin.im/user/2488950054725101/posts) * 63、[翻译、开发心得或学习笔记](https://github.com/nixzhu/dev-blog) * 64、[778477](https://778477.github.io) +* 65、[ibireme-YYKit作者](https://blog.ibireme.com) ## 高质量微信公众号 From 87ad165905b5c30d8f66ab2a136d6f4bab13c22e Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 29 Sep 2020 09:42:48 +0800 Subject: [PATCH 031/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\347\254\224\350\256\260.md" | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 060ace3c..f11555fd 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -37,7 +37,8 @@ > 代码混淆 -> * 资料 +> * 资料 + > [iOS-Performance-Optimization](https://github.com/skyming/iOS-Performance-Optimization) > [深入剖析 iOS 性能优化-戴明](https://ming1016.github.io/2017/06/20/deeply-ios-performance-optimization/#more) > [DoraemonKit](https://github.com/didi/DoraemonKit/blob/master/README_CN.md) @@ -59,16 +60,16 @@ > [优化 App 的启动时间](http://yulingtianxia.com/blog/2016/10/30/Optimizing-App-Startup-Time/) > [AppStartTime](https://github.com/JunyiXie/AppStartTime) > [iOS App 启动性能优化](https://mp.weixin.qq.com/s/Kf3EbDIUuf0aWVT-UCEmbA) -> [iOS一次立竿见影的启动时间优化](https://juejin.im/post/6844903525172903944) -> [iOS Dynamic Framework 对App启动时间影响实测](https://www.jianshu.com/p/3263009e9228) -> [iOS优化篇之App启动时间优化](https://juejin.im/post/6861917375382929415) -> [iOS如何提高10倍以上编译速度](https://juejin.im/post/6844904169124397070) -> [为什么 Debug Information Format 改为 DWARF 可以提高编译速度?](https://zhuanlan.zhihu.com/p/112764192) +> [iOS一次立竿见影的启动时间优化](https://juejin.im/post/6844903525172903944) +> [iOS Dynamic Framework 对App启动时间影响实测](https://www.jianshu.com/p/3263009e9228) +> [iOS优化篇之App启动时间优化](https://juejin.im/post/6861917375382929415) +> [iOS如何提高10倍以上编译速度](https://juejin.im/post/6844904169124397070) +> [为什么 Debug Information Format 改为 DWARF 可以提高编译速度?](https://zhuanlan.zhihu.com/p/112764192) > [移动 APP 网络优化概述](http://blog.cnbang.net/tech/3531/) -> [二进制重排-编译插桩与动态trace结合](https://github.com/rhythmkay/PGOAnalyzer) -> [关于WKWebView 秒开方案](https://www.jianshu.com/p/74fad07ec640) -> [如何自建 Crash 平台](https://www.xuyanlan.com/2019/02/20/iOS-crash-report/) -> [iOS客户端稳定性体系](https://778477.github.io/2018/02/23/2018-02-23-iOS客户端稳定性体系/) +> [二进制重排-编译插桩与动态trace结合](https://github.com/rhythmkay/PGOAnalyzer) +> [关于WKWebView 秒开方案](https://www.jianshu.com/p/74fad07ec640) +> [如何自建 Crash 平台](https://www.xuyanlan.com/2019/02/20/iOS-crash-report/) +> [iOS客户端稳定性体系](https://778477.github.io/2018/02/23/2018-02-23-iOS客户端稳定性体系/) > [iOS 包瘦身浅析](https://github.com/778477/iOS-LinkMapAnalyzer) ## 二、数据结构与算法 From fbab06a72d08b2ef94a2871c3c92390a2b1de856 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 29 Sep 2020 10:49:15 +0800 Subject: [PATCH 032/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index f11555fd..0750275e 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -70,7 +70,8 @@ > [关于WKWebView 秒开方案](https://www.jianshu.com/p/74fad07ec640) > [如何自建 Crash 平台](https://www.xuyanlan.com/2019/02/20/iOS-crash-report/) > [iOS客户端稳定性体系](https://778477.github.io/2018/02/23/2018-02-23-iOS客户端稳定性体系/) -> [iOS 包瘦身浅析](https://github.com/778477/iOS-LinkMapAnalyzer) +> [iOS 包瘦身浅析](https://github.com/778477/iOS-LinkMapAnalyzer) +> [iOS 崩溃排查技巧:如何获取系统库源码](https://mp.weixin.qq.com/s/YjJo-FB9weGgxEaOfCwBvg) ## 二、数据结构与算法 From 40e800976a024b315e37cb8fba45e717e5588286 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 30 Sep 2020 20:43:34 +0800 Subject: [PATCH 033/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 0750275e..33367f28 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -120,6 +120,7 @@ * 3、[OCRunner:完全体的iOS热修复方案](https://silverfruity.github.io/2020/09/04/OCRunner/) * 4、[DynamicOC](https://github.com/letqingbin/DynamicOC) * 5、[js-native 通信的 6 种方式](https://mp.weixin.qq.com/s/_Xo6O3NoE1z9AIMJm_uSsA) +* 6、[美团外卖客户端容器化架构的演进](https://mp.weixin.qq.com/s/kW5wu7GM7pMRRvN-dQvE2g) ## 七、Shell脚本 From f6432f283a14f0abe7fa4f2142e0b50365e4b92d Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 30 Sep 2020 20:58:07 +0800 Subject: [PATCH 034/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 4 ++-- ...07\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 33367f28..90b9de3e 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -122,7 +122,6 @@ * 5、[js-native 通信的 6 种方式](https://mp.weixin.qq.com/s/_Xo6O3NoE1z9AIMJm_uSsA) * 6、[美团外卖客户端容器化架构的演进](https://mp.weixin.qq.com/s/kW5wu7GM7pMRRvN-dQvE2g) - ## 七、Shell脚本 * 1、[Shell脚本编程30分钟入门](https://github.com/qinjx/30min_guides/blob/master/shell.md) @@ -149,7 +148,7 @@ * 1、[优秀的三方源码](https://github.com/iOShuyang/Book-Recommend-Github) * 2、[波儿菜](https://juejin.im/user/2735240659351112) * 3、[写给自己看系列之WebViewJavascriptBridge源码分析](https://juejin.im/post/6844904097192247303) - +* 4、[JSBridge 实现原理解析](https://github.com/mcuking/blog/issues/39) ## 其它 @@ -159,3 +158,4 @@ * 4、[OCLint 实现 Code Review - 给你的代码提提质量](https://juejin.im/post/6844903853775650830) * 5、[(译)开源软件架构之 LLVM(The Architecture of Open Source Applications LLVM)](https://juejin.im/post/6844904034134917134) * 6、[你真的会用 CocoaPods 吗?](https://juejin.im/post/6844903506734759949) +* 7、[你知道 Git 是如何做版本控制的吗?](https://juejin.im/post/6844903967525208078) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index f3a97dad..816be77b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -65,6 +65,7 @@ * 63、[翻译、开发心得或学习笔记](https://github.com/nixzhu/dev-blog) * 64、[778477](https://778477.github.io) * 65、[ibireme-YYKit作者](https://blog.ibireme.com) +* 66、[mcuking](https://github.com/mcuking/blog) ## 高质量微信公众号 From f97f999e124486ad143bc520f19e1720701cc5cb Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 9 Oct 2020 10:09:13 +0800 Subject: [PATCH 035/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index 816be77b..fa714a94 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -65,7 +65,8 @@ * 63、[翻译、开发心得或学习笔记](https://github.com/nixzhu/dev-blog) * 64、[778477](https://778477.github.io) * 65、[ibireme-YYKit作者](https://blog.ibireme.com) -* 66、[mcuking](https://github.com/mcuking/blog) +* 66、[mcuking](https://github.com/mcuking/blog) +* 67、[冬瓜争做全栈瓜](https://www.desgard.com) ## 高质量微信公众号 From a3cd7f2f2ddb895c90286211f5f622cece326c2c Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sat, 10 Oct 2020 19:11:30 +0800 Subject: [PATCH 036/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 90b9de3e..ac543e15 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -142,6 +142,7 @@ ## 十、架构/设计模式 +*1、[IOS设计模式探索(大话设计模式)](https://github.com/huang303513/Design-Pattern-For-iOS.git) ## 十一、优秀三方源码解析 From 86eeaeb1d37fc9a6ddac089a6bc4570f6d59be76 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 13 Oct 2020 10:46:27 +0800 Subject: [PATCH 037/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index ac543e15..249a8da8 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -72,6 +72,7 @@ > [iOS客户端稳定性体系](https://778477.github.io/2018/02/23/2018-02-23-iOS客户端稳定性体系/) > [iOS 包瘦身浅析](https://github.com/778477/iOS-LinkMapAnalyzer) > [iOS 崩溃排查技巧:如何获取系统库源码](https://mp.weixin.qq.com/s/YjJo-FB9weGgxEaOfCwBvg) +> [iOS 性能优化:优化 App 启动速度](https://mp.weixin.qq.com/s/h3vB_zEJBAHCfGmD5EkMcw) ## 二、数据结构与算法 @@ -94,6 +95,7 @@ * 12、[iOSDevLevelingUp](https://github.com/ShannonChenCHN/iOSDevLevelingUp) * 13、[iOS 基础](https://juejin.im/user/940837683069549/posts) * 14、[深入理解RunLoop](https://blog.ibireme.com/2015/05/18/runloop/) +* 15、[BoyangBlog](https://github.com/BiBoyang/BoyangBlog.git) ## 四、逆向与安全 From 3d82b0c1aeedcb15219196e88bfdc290fc375de8 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 15 Oct 2020 18:29:52 +0800 Subject: [PATCH 038/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 249a8da8..d3fa7bb2 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -144,7 +144,8 @@ ## 十、架构/设计模式 -*1、[IOS设计模式探索(大话设计模式)](https://github.com/huang303513/Design-Pattern-For-iOS.git) +* 1、[IOS设计模式探索(大话设计模式)](https://github.com/huang303513/Design-Pattern-For-iOS.git) +* 2、[面向对象设计的设计原则和设计模式](https://github.com/knightsj/object-oriented-design) ## 十一、优秀三方源码解析 From e3c03154074556e927be370db001ddd41b760cf7 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 16 Oct 2020 14:05:32 +0800 Subject: [PATCH 039/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index d3fa7bb2..ab574516 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -72,7 +72,9 @@ > [iOS客户端稳定性体系](https://778477.github.io/2018/02/23/2018-02-23-iOS客户端稳定性体系/) > [iOS 包瘦身浅析](https://github.com/778477/iOS-LinkMapAnalyzer) > [iOS 崩溃排查技巧:如何获取系统库源码](https://mp.weixin.qq.com/s/YjJo-FB9weGgxEaOfCwBvg) -> [iOS 性能优化:优化 App 启动速度](https://mp.weixin.qq.com/s/h3vB_zEJBAHCfGmD5EkMcw) +> [iOS 性能优化:优化 App 启动速度](https://mp.weixin.qq.com/s/h3vB_zEJBAHCfGmD5EkMcw) +> [iOS 性能优化:使用 MetricKit 2.0 收集数据](https://mp.weixin.qq.com/s/cbP0QlxVlr5oeTrf6yYfFw) + ## 二、数据结构与算法 From 2f42a8079b14cb0a95a62ca47282a5b7e14e61d9 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 16 Oct 2020 16:41:08 +0800 Subject: [PATCH 040/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index fa714a94..6bd62d05 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -86,6 +86,8 @@ * 14、[携程技术](公众号:ctriptech) * 15、[字节跳动技术团队](公众号:toutiaotechblog) * 16、[老司机技术周报](公众号:LSJCoding) +* 17、[淘系技术](公众号:AlibabaMTT) +* 18、[我是程序员小贱](公众号:Lanj1995Q) ## 书籍 From 7dcc4a03a2fd69754688ca0271dd9a766b073987 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 19 Oct 2020 10:39:45 +0800 Subject: [PATCH 041/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 2 +- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 3 ++- ...207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index ab574516..8d4cf506 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -74,7 +74,7 @@ > [iOS 崩溃排查技巧:如何获取系统库源码](https://mp.weixin.qq.com/s/YjJo-FB9weGgxEaOfCwBvg) > [iOS 性能优化:优化 App 启动速度](https://mp.weixin.qq.com/s/h3vB_zEJBAHCfGmD5EkMcw) > [iOS 性能优化:使用 MetricKit 2.0 收集数据](https://mp.weixin.qq.com/s/cbP0QlxVlr5oeTrf6yYfFw) - +> [iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) ## 二、数据结构与算法 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 245cad9c..9014df61 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -3,4 +3,5 @@ ## 面试知识点 * 1、 [为什么iOS更新UI操作必须在主线程?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) -* 2、 +* 2、Swift和OC的方法调用流程区别? +* 3、[iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index 6bd62d05..e0f7d62a 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -67,6 +67,7 @@ * 65、[ibireme-YYKit作者](https://blog.ibireme.com) * 66、[mcuking](https://github.com/mcuking/blog) * 67、[冬瓜争做全栈瓜](https://www.desgard.com) +* 68、[iOS一叶](https://juejin.im/user/1899557248829438) ## 高质量微信公众号 From e1adc29e163747cd33e74913808f36fdd739c7eb Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 19 Oct 2020 15:22:11 +0800 Subject: [PATCH 042/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 8d4cf506..f95e837f 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -116,6 +116,7 @@ * 4、[CainCamera](https://github.com/CainKernel/blog) * 5、[Android 音视频开发学习思路](https://www.cnblogs.com/renhui/p/7452572.html) * 6、[loyinglin](https://github.com/loyinglin) +* 7、[CC老师](https://www.jianshu.com/u/1b4c832fb2ca) ## 六、跨平台/热更新 From 8bd8bec428b6eb2962ed960f2adf50b2b513ec1a Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 21 Oct 2020 14:47:23 +0800 Subject: [PATCH 043/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/.DS_Store | Bin 10244 -> 10244 bytes iOS_Tips/DarkMode.xcodeproj/project.pbxproj | 8 -------- 2 files changed, 8 deletions(-) diff --git a/iOS_Tips/.DS_Store b/iOS_Tips/.DS_Store index a974884ba5ff36efe8aeac7d0c23d2fed1031529..eb789d1cbce05a223d2409d53c0fa2f23ef865b4 100644 GIT binary patch delta 40 tcmZn(XbIS0CBft+G5LVFhCo4vVQ_MOZUF-bFcmON-XNi~d4WU Date: Wed, 21 Oct 2020 14:49:49 +0800 Subject: [PATCH 044/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/DarkMode.xcodeproj/project.pbxproj | 20 ++++++++++---------- iOS_Tips/DarkMode/OpenGL/.DS_Store | Bin 6148 -> 6148 bytes 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/iOS_Tips/DarkMode.xcodeproj/project.pbxproj b/iOS_Tips/DarkMode.xcodeproj/project.pbxproj index 6a4b7483..e7bb88ba 100644 --- a/iOS_Tips/DarkMode.xcodeproj/project.pbxproj +++ b/iOS_Tips/DarkMode.xcodeproj/project.pbxproj @@ -586,6 +586,13 @@ name = Frameworks; sourceTree = ""; }; + 2C09ED9425401113009E96B6 /* 设计模式 */ = { + isa = PBXGroup; + children = ( + ); + path = "设计模式"; + sourceTree = ""; + }; 7811F76C24B2C70D000AA044 /* 二进制重排 */ = { isa = PBXGroup; children = ( @@ -794,7 +801,6 @@ children = ( 783FB45D2394A7580039AEFD /* ShaderLanguage */, 78777CDC238FEA15006FA671 /* Controller */, - 78777CDD238FEA15006FA671 /* View */, ); path = OpenGL; sourceTree = ""; @@ -802,6 +808,8 @@ 78777CDC238FEA15006FA671 /* Controller */ = { isa = PBXGroup; children = ( + 782CFB1E239DEA05001B5528 /* SLSplitScreenCell.h */, + 782CFB1F239DEA05001B5528 /* SLSplitScreenCell.m */, 78777CDE238FEA48006FA671 /* SLOpenGLController.h */, 78777CDF238FEA48006FA671 /* SLOpenGLController.m */, 788ACD602390BFD400737EC2 /* SLLoadImageVC.h */, @@ -826,15 +834,6 @@ path = Controller; sourceTree = ""; }; - 78777CDD238FEA15006FA671 /* View */ = { - isa = PBXGroup; - children = ( - 782CFB1E239DEA05001B5528 /* SLSplitScreenCell.h */, - 782CFB1F239DEA05001B5528 /* SLSplitScreenCell.m */, - ); - path = View; - sourceTree = ""; - }; 78777CE1238FF551006FA671 /* Tool */ = { isa = PBXGroup; children = ( @@ -1057,6 +1056,7 @@ 7884247C24920FCA00C2E505 /* WorkIssues */, 788ADB342441F46500302CD9 /* Crash */, 78E72D4E24766E1300751373 /* WKWebView */, + 2C09ED9425401113009E96B6 /* 设计模式 */, 78B1048C232F57C50051579F /* Assets.xcassets */, 78B10489232F57C30051579F /* Main.storyboard */, 78B1048E232F57C50051579F /* LaunchScreen.storyboard */, diff --git a/iOS_Tips/DarkMode/OpenGL/.DS_Store b/iOS_Tips/DarkMode/OpenGL/.DS_Store index 669244197c424da5bace70d5bc1f7546d9793524..7d1ef82493efbe1e7c105b7b149f0ac03ab935ee 100644 GIT binary patch delta 180 zcmZoMXfc=|#>B)qu~2NHo+2aX#DLw4KQJ;fa!yWQl$fl-xILGJA&eoDA(f##C*3eO zIX}060RiB0x%nB`mu~2NHo+2ab#DLw5tdkR%BqpmcZQmTiyqRTVLnY&8b`E|HpsLM* Y%-@+O^NUz=FaQA~0|V3M0Ff=s0HCZ9Pyhe` From 025724c3f466b096a01d6fa1bf356a68582a0495 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 21 Oct 2020 14:50:47 +0800 Subject: [PATCH 045/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/DarkMode.xcodeproj/project.pbxproj | 16 ++++++++++++---- .../{Controller => View}/SLSplitScreenCell.h | 0 .../{Controller => View}/SLSplitScreenCell.m | 0 3 files changed, 12 insertions(+), 4 deletions(-) rename iOS_Tips/DarkMode/OpenGL/{Controller => View}/SLSplitScreenCell.h (100%) rename iOS_Tips/DarkMode/OpenGL/{Controller => View}/SLSplitScreenCell.m (100%) diff --git a/iOS_Tips/DarkMode.xcodeproj/project.pbxproj b/iOS_Tips/DarkMode.xcodeproj/project.pbxproj index e7bb88ba..d7fe7eb0 100644 --- a/iOS_Tips/DarkMode.xcodeproj/project.pbxproj +++ b/iOS_Tips/DarkMode.xcodeproj/project.pbxproj @@ -235,8 +235,8 @@ 7822CCF7235B054200E70C29 /* SLPaddingLabel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SLPaddingLabel.m; sourceTree = ""; }; 782CFB1B239DDE95001B5528 /* SLSplitScreenViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SLSplitScreenViewController.h; sourceTree = ""; }; 782CFB1C239DDE95001B5528 /* SLSplitScreenViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SLSplitScreenViewController.m; sourceTree = ""; }; - 782CFB1E239DEA05001B5528 /* SLSplitScreenCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SLSplitScreenCell.h; path = DarkMode/OpenGL/Controller/SLSplitScreenCell.h; sourceTree = SOURCE_ROOT; }; - 782CFB1F239DEA05001B5528 /* SLSplitScreenCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SLSplitScreenCell.m; path = DarkMode/OpenGL/Controller/SLSplitScreenCell.m; sourceTree = SOURCE_ROOT; }; + 782CFB1E239DEA05001B5528 /* SLSplitScreenCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SLSplitScreenCell.h; path = DarkMode/OpenGL/View/SLSplitScreenCell.h; sourceTree = SOURCE_ROOT; }; + 782CFB1F239DEA05001B5528 /* SLSplitScreenCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SLSplitScreenCell.m; path = DarkMode/OpenGL/View/SLSplitScreenCell.m; sourceTree = SOURCE_ROOT; }; 782CFB21239DFD0F001B5528 /* SplitScreen_2.fsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = SplitScreen_2.fsh; sourceTree = ""; }; 782CFB22239DFD0F001B5528 /* SplitScreen_2.vsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = SplitScreen_2.vsh; sourceTree = ""; }; 782CFB25239DFD88001B5528 /* SplitScreen_1.fsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = SplitScreen_1.fsh; sourceTree = ""; }; @@ -593,6 +593,15 @@ path = "设计模式"; sourceTree = ""; }; + 2C09ED95254011A2009E96B6 /* View */ = { + isa = PBXGroup; + children = ( + 782CFB1E239DEA05001B5528 /* SLSplitScreenCell.h */, + 782CFB1F239DEA05001B5528 /* SLSplitScreenCell.m */, + ); + path = View; + sourceTree = ""; + }; 7811F76C24B2C70D000AA044 /* 二进制重排 */ = { isa = PBXGroup; children = ( @@ -799,6 +808,7 @@ 78777CDB238FEA15006FA671 /* OpenGL */ = { isa = PBXGroup; children = ( + 2C09ED95254011A2009E96B6 /* View */, 783FB45D2394A7580039AEFD /* ShaderLanguage */, 78777CDC238FEA15006FA671 /* Controller */, ); @@ -808,8 +818,6 @@ 78777CDC238FEA15006FA671 /* Controller */ = { isa = PBXGroup; children = ( - 782CFB1E239DEA05001B5528 /* SLSplitScreenCell.h */, - 782CFB1F239DEA05001B5528 /* SLSplitScreenCell.m */, 78777CDE238FEA48006FA671 /* SLOpenGLController.h */, 78777CDF238FEA48006FA671 /* SLOpenGLController.m */, 788ACD602390BFD400737EC2 /* SLLoadImageVC.h */, diff --git a/iOS_Tips/DarkMode/OpenGL/Controller/SLSplitScreenCell.h b/iOS_Tips/DarkMode/OpenGL/View/SLSplitScreenCell.h similarity index 100% rename from iOS_Tips/DarkMode/OpenGL/Controller/SLSplitScreenCell.h rename to iOS_Tips/DarkMode/OpenGL/View/SLSplitScreenCell.h diff --git a/iOS_Tips/DarkMode/OpenGL/Controller/SLSplitScreenCell.m b/iOS_Tips/DarkMode/OpenGL/View/SLSplitScreenCell.m similarity index 100% rename from iOS_Tips/DarkMode/OpenGL/Controller/SLSplitScreenCell.m rename to iOS_Tips/DarkMode/OpenGL/View/SLSplitScreenCell.m From 809f978834d3bd1b0264d29e3f3941ab34521626 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 22 Oct 2020 20:01:35 +0800 Subject: [PATCH 046/145] =?UTF-8?q?bi=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OpenGL/Controller/SLOpenGLController.m | 19 +++++++++++++++++-- .../SLShaderLanguageViewController.m | 2 +- .../WorkIssues/\347\254\224\350\256\260.md" | 1 + 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/iOS_Tips/DarkMode/OpenGL/Controller/SLOpenGLController.m b/iOS_Tips/DarkMode/OpenGL/Controller/SLOpenGLController.m index bc266f93..52886a3a 100644 --- a/iOS_Tips/DarkMode/OpenGL/Controller/SLOpenGLController.m +++ b/iOS_Tips/DarkMode/OpenGL/Controller/SLOpenGLController.m @@ -47,8 +47,23 @@ - (void)setupUI { #pragma mark - Data - (void)getData { //tableView、UIAlertView等系统控件,在不自定义颜色的情况下,默认颜色都是动态的,支持暗黑模式 - [self.dataSource addObjectsFromArray:@[@" GLKit 加载图片", @" GLKit 绘制正方体", @" GLKit 颜色和纹理混合金字塔",@" OpenGL ShaderLanguage(GLSL) 加载图片", @" GLSL 绘制金字塔", @" GLSL 颜色和纹理混合", @" GLSL 分屏特效", @" GLSL 滤镜集合", @"GLSL 抖音部分特效集合"]]; - [self.classArray addObjectsFromArray:@[[SLLoadImageVC class], [SLCubeViewController class], [SLGLKPyramidVC class], [SLShaderLanguageViewController class], [SLShaderCubeViewController class], [SLMixColorTextureVC class], [SLSplitScreenViewController class], [SLShaderFilterViewController class], [SLSpecialEffectsViewController class]]]; + [self.dataSource addObjectsFromArray:@[@" GLKit 加载图片", + @" GLKit 绘制正方体", + @" GLKit 颜色和纹理混合金字塔", + @" OpenGL ShaderLanguage(GLSL) 加载图片", + @" GLSL 绘制金字塔", @" GLSL 颜色和纹理混合", + @" GLSL 分屏特效", + @" GLSL 滤镜集合", + @"GLSL 抖音部分特效集合"]]; + [self.classArray addObjectsFromArray:@[[SLLoadImageVC class], + [SLCubeViewController class], + [SLGLKPyramidVC class], + [SLShaderLanguageViewController class], + [SLShaderCubeViewController class], + [SLMixColorTextureVC class], + [SLSplitScreenViewController class], + [SLShaderFilterViewController class], + [SLSpecialEffectsViewController class]]]; [self.tableView reloadData]; } #pragma mark - Getter diff --git a/iOS_Tips/DarkMode/OpenGL/Controller/SLShaderLanguageViewController.m b/iOS_Tips/DarkMode/OpenGL/Controller/SLShaderLanguageViewController.m index 3f46c8b4..7974b9f8 100644 --- a/iOS_Tips/DarkMode/OpenGL/Controller/SLShaderLanguageViewController.m +++ b/iOS_Tips/DarkMode/OpenGL/Controller/SLShaderLanguageViewController.m @@ -326,7 +326,7 @@ -(void)renderLayer { [self setupTexture]; //11. 设置纹理采样器 sampler2D 纹理单元GL_TEXTURE0 - GL_TEXTURE15 总共有16个纹理单元 - glUniform1i(glGetUniformLocation(self.myPrograme, "colorMap"), 0); + glUniform1i(glGetUniformLocation(self.myPrograme, "colorMap"), GL_TEXTURE0); //12.不使用索引数组 绘图 从第0个顶点开始,共六个顶点 glDrawArrays(GL_TRIANGLES, 0, 6); diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index f95e837f..e022916c 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -126,6 +126,7 @@ * 4、[DynamicOC](https://github.com/letqingbin/DynamicOC) * 5、[js-native 通信的 6 种方式](https://mp.weixin.qq.com/s/_Xo6O3NoE1z9AIMJm_uSsA) * 6、[美团外卖客户端容器化架构的演进](https://mp.weixin.qq.com/s/kW5wu7GM7pMRRvN-dQvE2g) +* 7、[SYWebViewBridge](https://mp.weixin.qq.com/s/JDCyWg1AYemxbnFbvY5E9w) ## 七、Shell脚本 From 072aeb4556bd6d8b8803e09d066414f138f35f15 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 22 Oct 2020 20:17:17 +0800 Subject: [PATCH 047/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OpenGL/Controller/SLShaderLanguageViewController.m | 10 +++++----- iOS_Tips/DarkMode/OpenGL/ShaderLanguage/shaderf.fsh | 4 +++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/iOS_Tips/DarkMode/OpenGL/Controller/SLShaderLanguageViewController.m b/iOS_Tips/DarkMode/OpenGL/Controller/SLShaderLanguageViewController.m index 7974b9f8..7e8f5769 100644 --- a/iOS_Tips/DarkMode/OpenGL/Controller/SLShaderLanguageViewController.m +++ b/iOS_Tips/DarkMode/OpenGL/Controller/SLShaderLanguageViewController.m @@ -21,8 +21,8 @@ OpenGL ES 3种变量修饰符(varying, attribute, uniform) https://blog.csdn.net/hgl868/article/details/7846269 uniform: 由外部客户端传入,由函数glUniform** 提供赋值功能,类似于const, 被uniform 修饰变量在顶点/片元着色器中 只能用,不能修改 一般用来修饰矩阵 - attribute:只能在顶点着色器出现 - varying:中间传递,顶点和片元着色器之间传递数据 + attribute:只能在顶点着色器出现, + varying:中间传递,由顶点着色器传向片元着色器的数据变量 lowp, mediump和highp:精度修饰符声明了底层实现存储这些变量必须要使用的最小范围和精度。实现可能会使用比要求更大的范围和精度,但绝对不会比要求少。 @@ -325,8 +325,8 @@ -(void)renderLayer { //10.加载纹理 [self setupTexture]; - //11. 设置纹理采样器 sampler2D 纹理单元GL_TEXTURE0 - GL_TEXTURE15 总共有16个纹理单元 - glUniform1i(glGetUniformLocation(self.myPrograme, "colorMap"), GL_TEXTURE0); + //11. 设置纹理采样器sampler2D 纹理单元GL_TEXTURE0 - GL_TEXTURE15 总共有16个纹理单元 + glUniform1i(glGetUniformLocation(self.myPrograme, "colorMap"), 0); //12.不使用索引数组 绘图 从第0个顶点开始,共六个顶点 glDrawArrays(GL_TRIANGLES, 0, 6); @@ -424,7 +424,7 @@ - (GLuint)setupTexture{ //7、画图完毕就释放上下文 CGContextRelease(spriteContext); - //8、绑定纹理到默认的纹理ID( + //8、绑定纹理到默认的纹理ID: 0( glBindTexture(GL_TEXTURE_2D, 0); //9.设置纹理属性 diff --git a/iOS_Tips/DarkMode/OpenGL/ShaderLanguage/shaderf.fsh b/iOS_Tips/DarkMode/OpenGL/ShaderLanguage/shaderf.fsh index 636fc5d6..b411d604 100644 --- a/iOS_Tips/DarkMode/OpenGL/ShaderLanguage/shaderf.fsh +++ b/iOS_Tips/DarkMode/OpenGL/ShaderLanguage/shaderf.fsh @@ -7,4 +7,6 @@ void main() } -// 后缀.vsh和.fsh 是可以自定义的,只是为了区分和管理顶点着色器和片元着色器,也可以用字符串存储 +// 后缀.vsh(顶点着色器)和.fsh(片元着色器) 是可以自定义的,只是为了区分和管理顶点着色器和片元着色器,也可以用字符串存储 +// colorMap 采样器 +// varyTextCoord 纹理坐标 由顶点着色器传入,必须和.vsh(顶点着色器)的变量保持一致 From 28a5aa7fcf88071225e91c1c71fa80061f4cf9dd Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 23 Oct 2020 20:10:38 +0800 Subject: [PATCH 048/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xcshareddata/xcschemes/DarkMode.xcscheme | 6 +++++- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/iOS_Tips/DarkMode.xcodeproj/xcshareddata/xcschemes/DarkMode.xcscheme b/iOS_Tips/DarkMode.xcodeproj/xcshareddata/xcschemes/DarkMode.xcscheme index d70c5f89..55ea58eb 100644 --- a/iOS_Tips/DarkMode.xcodeproj/xcshareddata/xcschemes/DarkMode.xcscheme +++ b/iOS_Tips/DarkMode.xcodeproj/xcshareddata/xcschemes/DarkMode.xcscheme @@ -1,7 +1,7 @@ + version = "1.7"> @@ -77,6 +77,10 @@ isEnabled = "YES"> + + Date: Mon, 26 Oct 2020 13:38:58 +0800 Subject: [PATCH 049/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 1dba4a7c..da4f966f 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -74,7 +74,8 @@ > [iOS 崩溃排查技巧:如何获取系统库源码](https://mp.weixin.qq.com/s/YjJo-FB9weGgxEaOfCwBvg) > [iOS 性能优化:优化 App 启动速度](https://mp.weixin.qq.com/s/h3vB_zEJBAHCfGmD5EkMcw) > [iOS 性能优化:使用 MetricKit 2.0 收集数据](https://mp.weixin.qq.com/s/cbP0QlxVlr5oeTrf6yYfFw) -> [iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) +> [iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) +> [抖音品质建设 - iOS启动优化《原理篇》](https://mp.weixin.qq.com/s/3-Sbqe9gxdV6eI1f435BDg) ## 二、数据结构与算法 From 767064c29d201f88a912118dc557711cea6b134e Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 26 Oct 2020 23:13:01 +0800 Subject: [PATCH 050/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 5 +++-- ...7\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index da4f966f..89be735f 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -75,7 +75,8 @@ > [iOS 性能优化:优化 App 启动速度](https://mp.weixin.qq.com/s/h3vB_zEJBAHCfGmD5EkMcw) > [iOS 性能优化:使用 MetricKit 2.0 收集数据](https://mp.weixin.qq.com/s/cbP0QlxVlr5oeTrf6yYfFw) > [iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) -> [抖音品质建设 - iOS启动优化《原理篇》](https://mp.weixin.qq.com/s/3-Sbqe9gxdV6eI1f435BDg) +> [抖音品质建设 - iOS启动优化《原理篇》](https://mp.weixin.qq.com/s/3-Sbqe9gxdV6eI1f435BDg) +> [iOS Rendering 渲染全解析(长文干货)](https://juejin.im/post/6844904162765832206) ## 二、数据结构与算法 @@ -163,7 +164,7 @@ * 1、[CocoaPods 都做了什么?](https://www.jianshu.com/p/84936d9344ff) * 2、[1. 版本管理工具及 Ruby 工具链环境](https://mp.weixin.qq.com/s/s2yJEb2P0_Kk-rIpYBi_9A) -* 3、[2. 整体把握 CocoaPods 核心组件](https://mp.weixin.qq.com/s/eyjrhPgPFdidPWO7t2SDcA) +* 3、[2. 整体把握 CocoaPods 核心组件](https://looseyi.github.io/post/sourcecode-cocoapods/02-cocoapods-corecomponents/) * 4、[OCLint 实现 Code Review - 给你的代码提提质量](https://juejin.im/post/6844903853775650830) * 5、[(译)开源软件架构之 LLVM(The Architecture of Open Source Applications LLVM)](https://juejin.im/post/6844904034134917134) * 6、[你真的会用 CocoaPods 吗?](https://juejin.im/post/6844903506734759949) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index e0f7d62a..e0238a42 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -68,6 +68,7 @@ * 66、[mcuking](https://github.com/mcuking/blog) * 67、[冬瓜争做全栈瓜](https://www.desgard.com) * 68、[iOS一叶](https://juejin.im/user/1899557248829438) +* 68、[土土Edmond木](https://looseyi.github.io) ## 高质量微信公众号 @@ -89,6 +90,7 @@ * 16、[老司机技术周报](公众号:LSJCoding) * 17、[淘系技术](公众号:AlibabaMTT) * 18、[我是程序员小贱](公众号:Lanj1995Q) +* 19、[腾讯技术工程](公众号:Tencent_TEG) ## 书籍 From 20166a5a87b72508eb6f68a40e484032f8d64c22 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 27 Oct 2020 15:05:08 +0800 Subject: [PATCH 051/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 4 +++- ...07\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 89be735f..8cd98ec9 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -76,7 +76,8 @@ > [iOS 性能优化:使用 MetricKit 2.0 收集数据](https://mp.weixin.qq.com/s/cbP0QlxVlr5oeTrf6yYfFw) > [iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) > [抖音品质建设 - iOS启动优化《原理篇》](https://mp.weixin.qq.com/s/3-Sbqe9gxdV6eI1f435BDg) -> [iOS Rendering 渲染全解析(长文干货)](https://juejin.im/post/6844904162765832206) +> [iOS Rendering 渲染全解析(长文干货)](https://juejin.im/post/6844904162765832206) +> [再谈 iOS App Crash 防护](https://mp.weixin.qq.com/s/l5S_g1PBCiwm4KDtqNFb-A) ## 二、数据结构与算法 @@ -109,6 +110,7 @@ * 4、[Injection:iOS热重载背后的黑魔法](https://mp.weixin.qq.com/s/hFnHdOP6pmIwzZck-zXE8g) * 5、[高效逆向 - 为任意iOS App生成符号表](https://github.com/imoldman/DSYMCreator) * 6、[iOS LLVM-Clang 浅谈](https://www.jianshu.com/p/7ceca351a045) +* 7、[iOSer逆向](https://iosre.com) ## 五、音视频 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index e0238a42..eb57b37c 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -68,7 +68,8 @@ * 66、[mcuking](https://github.com/mcuking/blog) * 67、[冬瓜争做全栈瓜](https://www.desgard.com) * 68、[iOS一叶](https://juejin.im/user/1899557248829438) -* 68、[土土Edmond木](https://looseyi.github.io) +* 69、[土土Edmond木](https://looseyi.github.io) +* 70、[iOSer逆向](https://iosre.com) ## 高质量微信公众号 From 52b968c162e4fdb44ba5ac10b1cbe10eee7ad9dd Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 27 Oct 2020 22:27:54 +0800 Subject: [PATCH 052/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 9014df61..6eca63ed 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -5,3 +5,5 @@ * 1、 [为什么iOS更新UI操作必须在主线程?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) * 2、Swift和OC的方法调用流程区别? * 3、[iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) +* 4、[GCD](https://looseyi.github.io/post/notes/01-gcd/) +* 5、[runloop](https://blog.ibireme.com/2015/05/18/runloop/) From 59cf229ffe28799658620b35a7bf8e908d5a7d6c Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 29 Oct 2020 19:58:11 +0800 Subject: [PATCH 053/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 5 ++++- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 8cd98ec9..10440b4d 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -77,12 +77,14 @@ > [iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) > [抖音品质建设 - iOS启动优化《原理篇》](https://mp.weixin.qq.com/s/3-Sbqe9gxdV6eI1f435BDg) > [iOS Rendering 渲染全解析(长文干货)](https://juejin.im/post/6844904162765832206) -> [再谈 iOS App Crash 防护](https://mp.weixin.qq.com/s/l5S_g1PBCiwm4KDtqNFb-A) +> [再谈 iOS App Crash 防护](https://mp.weixin.qq.com/s/l5S_g1PBCiwm4KDtqNFb-A) +> [iOS 网络优化: 使你的 App 网络交互更流畅](https://mp.weixin.qq.com/s/YLvpYBwaz8L6fnmzL78Mfg) ## 二、数据结构与算法 * 1、 [LeetcodeTop](https://github.com/afatcoder/LeetcodeTop) * 2、[小浩算法](https://www.geekxh.com) +* 3、[labuladong的算法小抄](https://labuladong.gitbook.io/algo/) ## 三、面试题相关 @@ -111,6 +113,7 @@ * 5、[高效逆向 - 为任意iOS App生成符号表](https://github.com/imoldman/DSYMCreator) * 6、[iOS LLVM-Clang 浅谈](https://www.jianshu.com/p/7ceca351a045) * 7、[iOSer逆向](https://iosre.com) +* 8、[fishhook 原理探究](https://mp.weixin.qq.com/s/uP3PASr7IoOMCQ-yy4RanA) ## 五、音视频 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 6eca63ed..2b727d18 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -7,3 +7,8 @@ * 3、[iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) * 4、[GCD](https://looseyi.github.io/post/notes/01-gcd/) * 5、[runloop](https://blog.ibireme.com/2015/05/18/runloop/) +* 6、[Weak的实现原理]() +* 6、[Block() +* 6、[AutoreleasePool]() +* 6、[编译过程]() +* 6、[启动过程]() From 44ab90e54192cf2fa1853dbf2470a600af90ea67 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 29 Oct 2020 21:56:19 +0800 Subject: [PATCH 054/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 10440b4d..b6b8e73f 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -103,6 +103,7 @@ * 13、[iOS 基础](https://juejin.im/user/940837683069549/posts) * 14、[深入理解RunLoop](https://blog.ibireme.com/2015/05/18/runloop/) * 15、[BoyangBlog](https://github.com/BiBoyang/BoyangBlog.git) +*16、[阿里、字节:一套高效的iOS面试题](https://juejin.im/post/6844904064937902094) ## 四、逆向与安全 From 91a1c5dff17610bf8dce30c64b7bd75dbe270c62 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 3 Nov 2020 14:45:04 +0800 Subject: [PATCH 055/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 4 +++- ...07\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index b6b8e73f..fd9ef70b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -78,7 +78,9 @@ > [抖音品质建设 - iOS启动优化《原理篇》](https://mp.weixin.qq.com/s/3-Sbqe9gxdV6eI1f435BDg) > [iOS Rendering 渲染全解析(长文干货)](https://juejin.im/post/6844904162765832206) > [再谈 iOS App Crash 防护](https://mp.weixin.qq.com/s/l5S_g1PBCiwm4KDtqNFb-A) -> [iOS 网络优化: 使你的 App 网络交互更流畅](https://mp.weixin.qq.com/s/YLvpYBwaz8L6fnmzL78Mfg) +> [iOS 网络优化: 使你的 App 网络交互更流畅](https://mp.weixin.qq.com/s/YLvpYBwaz8L6fnmzL78Mfg) +> [GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) + ## 二、数据结构与算法 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index eb57b37c..a989b897 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -70,6 +70,7 @@ * 68、[iOS一叶](https://juejin.im/user/1899557248829438) * 69、[土土Edmond木](https://looseyi.github.io) * 70、[iOSer逆向](https://iosre.com) +* 71、[GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) ## 高质量微信公众号 From 715adb2efc807edabca9927f655f852043546e19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E5=8D=9A=40=E4=B8=94=E8=A1=8C=E4=B8=94=E7=8F=8D?= =?UTF-8?q?=E6=83=9C=5FiOS?= <15324956576@163.com> Date: Thu, 5 Nov 2020 17:02:14 +0800 Subject: [PATCH 056/145] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 56be18f6..b53ce6c0 100644 --- a/README.md +++ b/README.md @@ -83,8 +83,6 @@ > 效果描述:实时拍摄添加水印和滤镜、本地视频添加水印、GIF图水印 -* 遗留问题:一个启动周期内,第一次启动摄像头时打开特慢,之后就特别块,还没找到原因,望知道到的告知一下🤝 - ![GPUImage框架的使用](https://github.com/wsl2ls/iOS_TipsPreview/blob/master/PrviewPicture/6、GPUImage.gif) #### 3.5-VideoToolBox和AudioToolBox音视频编解码 From 1b4698cd069621b7b5505a3b8baa2175087ace66 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 5 Nov 2020 20:40:50 +0800 Subject: [PATCH 057/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/DarkMode.xcodeproj/project.pbxproj | 10 +- iOS_Tips/DarkMode/.DS_Store | Bin 14340 -> 14340 bytes iOS_Tips/DarkMode/General/Tool/HMLog.h | 236 ++++++++++++++++++ .../\345\267\262\346\265\217\350\247\210.md" | 14 ++ .../\351\235\242\350\257\225\351\242\230.md" | 10 +- ...00\346\234\257\345\215\232\345\256\242.md" | 6 +- 6 files changed, 268 insertions(+), 8 deletions(-) create mode 100644 iOS_Tips/DarkMode/General/Tool/HMLog.h create mode 100644 "iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" diff --git a/iOS_Tips/DarkMode.xcodeproj/project.pbxproj b/iOS_Tips/DarkMode.xcodeproj/project.pbxproj index d7fe7eb0..a1cccdf1 100644 --- a/iOS_Tips/DarkMode.xcodeproj/project.pbxproj +++ b/iOS_Tips/DarkMode.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 2CC813682553CE88009DAC9B /* 已浏览.md in Resources */ = {isa = PBXBuildFile; fileRef = 2CC813672553CE88009DAC9B /* 已浏览.md */; }; 2CEBE85D24A6E65600BA21F3 /* SLTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CEBE85B24A6E65600BA21F3 /* SLTimer.m */; }; 780F5303236D8462000D0EA8 /* SLGridView.m in Sources */ = {isa = PBXBuildFile; fileRef = 780F5302236D8462000D0EA8 /* SLGridView.m */; }; 780F5306236D8570000D0EA8 /* SLImageClipController.m in Sources */ = {isa = PBXBuildFile; fileRef = 780F5305236D8570000D0EA8 /* SLImageClipController.m */; }; @@ -213,6 +214,8 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 2CC813672553CE88009DAC9B /* 已浏览.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = "已浏览.md"; sourceTree = ""; }; + 2CC8137925540CB8009DAC9B /* HMLog.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HMLog.h; sourceTree = ""; }; 2CEBE85B24A6E65600BA21F3 /* SLTimer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SLTimer.m; sourceTree = ""; }; 2CEBE85C24A6E65600BA21F3 /* SLTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SLTimer.h; sourceTree = ""; }; 780F5301236D845B000D0EA8 /* SLGridView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SLGridView.h; sourceTree = ""; }; @@ -846,6 +849,7 @@ isa = PBXGroup; children = ( 78AA10F42371A7B50044A6F8 /* PrefixHeader.pch */, + 2CC8137925540CB8009DAC9B /* HMLog.h */, 78F4E41224E5404A000B2ADE /* SLToolMacro.h */, 78777CE4238FF65C006FA671 /* SLDelayPerform.h */, 78777CE5238FF65C006FA671 /* SLDelayPerform.m */, @@ -938,6 +942,7 @@ 784C4C6F24C5B5DD00D5C199 /* 高质量技术博客.md */, 784C4C6D24C5B4F500D5C199 /* 笔记.md */, 785D06632522C32700F174BA /* 面试题.md */, + 2CC813672553CE88009DAC9B /* 已浏览.md */, 7884247D2492102900C2E505 /* SLWorkIssuesViewController.h */, 7884247E2492102900C2E505 /* SLWorkIssuesViewController.m */, 78908DC024FFBD83004164C2 /* ScrollView嵌套 */, @@ -1427,6 +1432,7 @@ 7811F77124B2C818000AA044 /* wsl.order in Resources */, 78E72D59247BA29600751373 /* WebTableView.html in Resources */, 782CFB7A239E6A11001B5528 /* Glitch.vsh in Resources */, + 2CC813682553CE88009DAC9B /* 已浏览.md in Resources */, 782CFB5A239E6227001B5528 /* Gray.fsh in Resources */, 782CFB66239E6651001B5528 /* HexagonMosaic.fsh in Resources */, 782CFB79239E6A11001B5528 /* Glitch.fsh in Resources */, @@ -1814,7 +1820,7 @@ NEW_SETTING = ""; ORDER_FILE = "$(SRCROOT)/DarkMode/WorkIssues/二进制重排/wsl.order"; OTHER_CFLAGS = "-fsanitize-coverage=func,trace-pc-guard"; - PRODUCT_BUNDLE_IDENTIFIER = com.wsl2ls.tips; + PRODUCT_BUNDLE_IDENTIFIER = com.wsl2ls.iostip; PRODUCT_NAME = SLTips; PROVISIONING_PROFILE_SPECIFIER = ""; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1846,7 +1852,7 @@ NEW_SETTING = ""; ORDER_FILE = "$(SRCROOT)/DarkMode/WorkIssues/二进制重排/wsl.order"; OTHER_CFLAGS = "-fsanitize-coverage=func,trace-pc-guard"; - PRODUCT_BUNDLE_IDENTIFIER = com.wsl2ls.tips; + PRODUCT_BUNDLE_IDENTIFIER = com.wsl2ls.iostip; PRODUCT_NAME = SLTips; PROVISIONING_PROFILE_SPECIFIER = ""; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/iOS_Tips/DarkMode/.DS_Store b/iOS_Tips/DarkMode/.DS_Store index e5fa5b0fb1e5ebf6b6ae4be8472a30e8c86e4bb3..05e7465d5ddd335c7f5ec7003ee1faa1b3eac77a 100644 GIT binary patch delta 23 bcmZoEXerpROOnaJZ1Wz;fBaxt(}NEHa&ZX1 delta 23 bcmZoEXerpROOnaVa`PU^fBaxt(}NEHb1?|f diff --git a/iOS_Tips/DarkMode/General/Tool/HMLog.h b/iOS_Tips/DarkMode/General/Tool/HMLog.h new file mode 100644 index 00000000..ef1bf35f --- /dev/null +++ b/iOS_Tips/DarkMode/General/Tool/HMLog.h @@ -0,0 +1,236 @@ +// The MIT License (MIT) +// +// Copyright (c) 2020 Huimao Chen +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +// GCC_C_LANGUAGE_STANDARD = gnu99 + +#ifndef HMLog_h +#define HMLog_h + +#import + +#pragma mark - Parameters + +// All optional parameters should be defined before import "HMLog.h", or you can modify the source code + +#ifndef HMLogEnable +#define HMLogEnable 1 +#endif // HMLogEnable + +#ifndef HMPrintEnable +#define HMPrintEnable 1 +#endif // HMPrintEnable + +#ifndef HMLogPrefix +#define HMLogPrefix(index, valueString) [NSString stringWithFormat:@"%d: %s = ", index, valueString] +#endif // HMLogPrefix + +#ifndef HMLogHeaderFormatString +#define HMLogHeaderFormatString(FUNC, LINE) \ + [NSString stringWithFormat:@"================ %s [%d] ================\n", FUNC, LINE] +#endif // HMLogHeaderFormatString + +#ifndef HMLogTypeExtension +#define HMLogTypeExtension +#endif // HMLogTypeExtension + +#pragma mark - Core + +// format, private macro +#define _HMLogFormat(VAR) \ + , HMStringify(VAR), @encode(__typeof__(VAR)), (VAR) + +// HMFormatString +#define HMFormatString(...) \ + HMExpand(_HMFormatString(__func__, __LINE__, HMArgCount(__VA_ARGS__) HMForeach(_HMLogFormat, __VA_ARGS__))) + +// HMLog +#if HMLogEnable + #define HMLog(...) \ + _HMLog(HMFormatString(__VA_ARGS__)) +#else + #define HMLog(...) +#endif // HMLogEnable + +// HMPrint +#if HMPrintEnable + #define HMPrint(...) \ + _HMPrint(HMFormatString(__VA_ARGS__)) +#else + #define HMPrint(...) +#endif // HMPrintEnable + + +static inline NSString * _HMFormatString(const char *func, int line, int count, ...) { // func, line, count, [valueString, TypeEncode, value] + NSMutableString *result = [[NSMutableString alloc] init]; + + // handle header + [result appendString:HMLogHeaderFormatString(func, line)]; + + // handle arguments + va_list v; + va_start(v, count); + for (int i = 0; i < count; ++i) { + char *valueString = va_arg(v, char *); + char *type = va_arg(v, char *); + + id obj = nil; + if (strcmp(type, @encode(id)) == 0) { // "@" id + id actual = va_arg(v, id); + obj = actual; + + } else if (strcmp(type, @encode(CGPoint)) == 0) { // "{CGPoint=dd}" CGPoint + CGPoint actual = (CGPoint)va_arg(v, CGPoint); + obj = [NSValue value:&actual withObjCType:type]; + + } else if (strcmp(type, @encode(CGSize)) == 0) { // "{CGSize=dd}" CGSize + CGSize actual = (CGSize)va_arg(v, CGSize); + obj = [NSValue value:&actual withObjCType:type]; + + } else if (strcmp(type, @encode(CGRect)) == 0) { // "{CGRect={CGPoint=dd}{CGSize=dd}}" CGRect + CGRect actual = (CGRect)va_arg(v, CGRect); + obj = [NSValue value:&actual withObjCType:type]; + + } else if (strcmp(type, @encode(UIEdgeInsets)) == 0) { // "{UIEdgeInsets=dddd}" UIEdgeInsets + UIEdgeInsets actual = (UIEdgeInsets)va_arg(v, UIEdgeInsets); + obj = NSStringFromUIEdgeInsets(actual); + + } else if (strcmp(type, @encode(NSRange)) == 0) { // "{_NSRange=QQ}" NSRange + NSRange actual = (NSRange)va_arg(v, NSRange); + obj = NSStringFromRange(actual); + + } else if (strcmp(type, @encode(SEL)) == 0) { // ":" SEL + SEL actual = (SEL)va_arg(v, SEL); + obj = [NSString stringWithFormat:@"SEL: %@", NSStringFromSelector(actual)]; + + } else if (strcmp(type, @encode(Class)) == 0) { // "#" Class + Class actual = (Class)va_arg(v, Class); + obj = NSStringFromClass(actual); + + } else if (strcmp(type, @encode(char *)) == 0) { // "*" char * + char * actual = (char *)va_arg(v, char *); + obj = [NSString stringWithFormat:@"%s", actual]; + + } else if (strcmp(type, @encode(double)) == 0) { // "d" double + double actual = (double)va_arg(v, double); + obj = [NSNumber numberWithDouble:actual]; + + } else if (strcmp(type, @encode(float)) == 0) { // "f" float + float actual = (float)va_arg(v, double); + obj = [NSNumber numberWithFloat:actual]; + + } else if (strcmp(type, @encode(int)) == 0) { // "i" int + int actual = (int)va_arg(v, int); + obj = [NSNumber numberWithInt:actual]; + + } else if (strcmp(type, @encode(long)) == 0) { // "q" long + long actual = (long)va_arg(v, long); + obj = [NSNumber numberWithLong:actual]; + + } else if (strcmp(type, @encode(long long)) == 0) { // "q" long long + long long actual = (long long)va_arg(v, long long); + obj = [NSNumber numberWithLongLong:actual]; + + } else if (strcmp(type, @encode(short)) == 0) { // "s" short + short actual = (short)va_arg(v, int); + obj = [NSNumber numberWithShort:actual]; + + } else if (strcmp(type, @encode(char)) == 0) { // "c" char & BOOL(32bit) + char actual = (char)va_arg(v, int); + obj = [NSString stringWithFormat:@"%d char:%c", actual, actual]; + + } else if (strcmp(type, @encode(bool)) == 0) { // "B" bool & BOOL(64bit) + bool actual = (bool)va_arg(v, int); + obj = actual ? @"YES" : @"NO"; + + } else if (strcmp(type, @encode(unsigned char)) == 0) { // "C" unsigned char + unsigned char actual = (unsigned char)va_arg(v, unsigned int); + obj = [NSString stringWithFormat:@"%d unsigned char:%c", actual, actual]; + + } else if (strcmp(type, @encode(unsigned int)) == 0) { // "I" unsigned int + unsigned int actual = (unsigned int)va_arg(v, unsigned int); + obj = [NSNumber numberWithUnsignedInt:actual]; + + } else if (strcmp(type, @encode(unsigned long)) == 0) { // "Q" unsigned long + unsigned long actual = (unsigned long)va_arg(v, unsigned long); + obj = [NSNumber numberWithUnsignedLong:actual]; + + } else if (strcmp(type, @encode(unsigned long long)) == 0) { // "Q" unsigned long long + unsigned long long actual = (unsigned long long)va_arg(v, unsigned long long); + obj = [NSNumber numberWithUnsignedLongLong:actual]; + + } else if (strcmp(type, @encode(unsigned short)) == 0) { // "S" unsigned short + unsigned short actual = (unsigned short)va_arg(v, unsigned int); + obj = [NSNumber numberWithUnsignedShort:actual]; + + } HMLogTypeExtension else { + [result appendString:@"Error: unknown type"]; + break; + } + + [result appendFormat:@"%@%@\n", ((void)(valueString), HMLogPrefix(i, valueString)), obj]; + } + va_end(v); + + return [result copy]; +} + +static inline void _HMLog(NSString *str) { + NSLog(@"\n%@", str); +} + +static inline void _HMPrint(NSString *str) { + printf("%s\n", str.UTF8String); +} + +#pragma mark - Helper + +#define HMStringify(VALUE) _HMStringify(VALUE) +#define _HMStringify(VALUE) # VALUE + +#define HMConcat(A, B) _HMConcat(A, B) +#define _HMConcat(A, B) A ## B + +// Return the number of arguments (up to twenty) provided to the macro. +#define HMArgCount(...) _HMArgCount(A, ##__VA_ARGS__, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) +#define _HMArgCount(A, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, COUNT, ...) COUNT + +// If the number of arguments is 0, return 0, otherwise return N. +#define HMArgCheck(...) _HMArgCheck(A, ##__VA_ARGS__, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 0) +#define _HMArgCheck(A, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, OBJ, ...) OBJ + +// Each argument will be passed to the MACRO, the MACRO must be this form: MACRO(arg). Inspired by https://stackoverflow.com/questions/3136686/is-the-c99-preprocessor-turing-complete/10526117#10526117 +#define HMForeach(MACRO, ...) HMConcat(_HMForeach, HMArgCheck(__VA_ARGS__)) (MACRO, ##__VA_ARGS__) +#define _HMForeach() HMForeach +#define _HMForeach0(MACRO) +#define _HMForeachN(MACRO, A, ...) MACRO(A) HMDefer(_HMForeach)() (MACRO, ##__VA_ARGS__) + +#define HMEmpty() +#define HMDefer(ID) ID HMEmpty() + +// For more scans +#define HMExpand(...) _HMExpand1(_HMExpand1(_HMExpand1(__VA_ARGS__))) +#define _HMExpand1(...) _HMExpand2(_HMExpand2(_HMExpand2(__VA_ARGS__))) +#define _HMExpand2(...) _HMExpand3(_HMExpand3(_HMExpand3(__VA_ARGS__))) +#define _HMExpand3(...) __VA_ARGS__ + + +#endif // HMLog_h diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" new file mode 100644 index 00000000..60604f9e --- /dev/null +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -0,0 +1,14 @@ + + +## 已浏览 + +* 1、[iOS插件化架构探索](https://mp.weixin.qq.com/s/QJ9YHX-Uy6lDIhJe_5wPGw) +* 2、 +* 3、 +* 4、 +* 5、 +* 6、 +* 7、 +* 8、 +* 9、 +* 10、 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 2b727d18..d68114d1 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -3,12 +3,12 @@ ## 面试知识点 * 1、 [为什么iOS更新UI操作必须在主线程?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) -* 2、Swift和OC的方法调用流程区别? +* 2、[Swift和OC的方法调用流程区别]() * 3、[iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) * 4、[GCD](https://looseyi.github.io/post/notes/01-gcd/) * 5、[runloop](https://blog.ibireme.com/2015/05/18/runloop/) * 6、[Weak的实现原理]() -* 6、[Block() -* 6、[AutoreleasePool]() -* 6、[编译过程]() -* 6、[启动过程]() +* 7、[Block() +* 8、[AutoreleasePool]() +* 9、[编译过程]() +* 10、[启动过程]() diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index a989b897..d76570c3 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -1,5 +1,5 @@ -## 高质量技术博客集合 +## 高质量技术博客 * 1、[WeRead团队博客](https://wereadteam.github.io/) * 2、[美团技术团队](https://tech.meituan.com/) @@ -71,6 +71,8 @@ * 69、[土土Edmond木](https://looseyi.github.io) * 70、[iOSer逆向](https://iosre.com) * 71、[GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) +* 72、[折腾范儿の味精](http://awhisper.github.io) + ## 高质量微信公众号 @@ -93,6 +95,8 @@ * 17、[淘系技术](公众号:AlibabaMTT) * 18、[我是程序员小贱](公众号:Lanj1995Q) * 19、[腾讯技术工程](公众号:Tencent_TEG) +* 20、[搜狐技术产品](公众号:sohu-tech) +* 21、[百度APP技术](公众号:gh_59f5931152fe) ## 书籍 From a03356c5984505c3454f23cd35c22c69fb620b53 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 5 Nov 2020 22:42:48 +0800 Subject: [PATCH 058/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index fd9ef70b..90bcf8b9 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -137,6 +137,7 @@ * 5、[js-native 通信的 6 种方式](https://mp.weixin.qq.com/s/_Xo6O3NoE1z9AIMJm_uSsA) * 6、[美团外卖客户端容器化架构的演进](https://mp.weixin.qq.com/s/kW5wu7GM7pMRRvN-dQvE2g) * 7、[SYWebViewBridge](https://mp.weixin.qq.com/s/JDCyWg1AYemxbnFbvY5E9w) +* 8、[JSPatch-实现原理详解](https://github.com/bang590/JSPatch/wiki/JSPatch-实现原理详解) ## 七、Shell脚本 From 85cf9f2e34a386ed91b1b7611a2be00f30eeea29 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 6 Nov 2020 14:45:36 +0800 Subject: [PATCH 059/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 +- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 60604f9e..95b36c35 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -3,7 +3,7 @@ ## 已浏览 * 1、[iOS插件化架构探索](https://mp.weixin.qq.com/s/QJ9YHX-Uy6lDIhJe_5wPGw) -* 2、 +* 2、[WKWebview秒开实践分享及问题解决方案](https://juejin.im/post/6887161842406260744) * 3、 * 4、 * 5、 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 90bcf8b9..623e4b0a 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -138,6 +138,7 @@ * 6、[美团外卖客户端容器化架构的演进](https://mp.weixin.qq.com/s/kW5wu7GM7pMRRvN-dQvE2g) * 7、[SYWebViewBridge](https://mp.weixin.qq.com/s/JDCyWg1AYemxbnFbvY5E9w) * 8、[JSPatch-实现原理详解](https://github.com/bang590/JSPatch/wiki/JSPatch-实现原理详解) +* 9、[WKWebview秒开实践分享及问题解决方案](https://juejin.im/post/6887161842406260744) ## 七、Shell脚本 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index d68114d1..82d20c72 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -12,3 +12,5 @@ * 8、[AutoreleasePool]() * 9、[编译过程]() * 10、[启动过程]() +* 11、[http1.0->1.1->2.2分别升级了什么……](https://www.cnblogs.com/riwang/p/12370785.html) +* 12、[就是这个HTTP1.1这个什么身份认证](https://blog.csdn.net/zhongshanxian/article/details/81294829) From f83f9d4d0265fef73d9540c6281d930e761b7e7c Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 6 Nov 2020 23:52:01 +0800 Subject: [PATCH 060/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/APM/APMMonitor/SLSystemAppInfo.h | 2 +- .../WorkIssues/APM/APMMonitor/SLSystemAppInfo.m | 2 +- .../\345\267\262\346\265\217\350\247\210.md" | 2 +- .../WorkIssues/\347\254\224\350\256\260.md" | 4 ++-- .../\351\235\242\350\257\225\351\242\230.md" | 15 ++++++++++----- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.h b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.h index 83334dca..cbb31b7f 100644 --- a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.h +++ b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.h @@ -42,7 +42,7 @@ NS_ASSUME_NONNULL_BEGIN + (NSString *)systemName; ///获取用户手机别名 用户定义的名称 通用-关于本机-名称 wsl的iphone + (NSString *)userPhoneName; -///设备唯一标识的字母数字字符串 C5668446-C443-4898-A213-209AECE3626C +///设备唯一标识的字母数字字符串 但如果用户重新安装,那么这个 UUID 就会发生变化。 C5668446-C443-4898-A213-209AECE3626C + (NSString *)uuidString; ///是否是iPhoneX系列/刘海屏 + (BOOL)isIPhoneXSeries; diff --git a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.m b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.m index 2094a5b6..974e58fc 100644 --- a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.m +++ b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.m @@ -150,7 +150,7 @@ + (NSString *)userPhoneName { NSString* userPhoneName = [[UIDevice currentDevice] name]; return userPhoneName; } -///设备唯一标识的字母数字字符串 C5668446-C443-4898-A213-209AECE3626C +///设备唯一标识的字母数字字符串,但如果用户重新安装,那么这个 UUID 就会发生变化。 C5668446-C443-4898-A213-209AECE3626C + (NSString *)uuidString { NSString *UUIDString = [[UIDevice currentDevice] identifierForVendor].UUIDString; return UUIDString; diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 95b36c35..9a23ee02 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -4,7 +4,7 @@ * 1、[iOS插件化架构探索](https://mp.weixin.qq.com/s/QJ9YHX-Uy6lDIhJe_5wPGw) * 2、[WKWebview秒开实践分享及问题解决方案](https://juejin.im/post/6887161842406260744) -* 3、 +* 3、[iOS基础](https://juejin.im/user/4371313963043661/posts) * 4、 * 5、 * 6、 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 623e4b0a..8ed9804a 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -79,8 +79,8 @@ > [iOS Rendering 渲染全解析(长文干货)](https://juejin.im/post/6844904162765832206) > [再谈 iOS App Crash 防护](https://mp.weixin.qq.com/s/l5S_g1PBCiwm4KDtqNFb-A) > [iOS 网络优化: 使你的 App 网络交互更流畅](https://mp.weixin.qq.com/s/YLvpYBwaz8L6fnmzL78Mfg) -> [GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) - +> [GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) +> [卡顿率降低50%!京东商城APP卡顿监控及优化实践](https://mp.weixin.qq.com/s/aJeAUAjcKOMvznDMGj2UUA) ## 二、数据结构与算法 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 82d20c72..ad4c8e8e 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -1,6 +1,6 @@ -## 面试知识点 +## 面试题 * 1、 [为什么iOS更新UI操作必须在主线程?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) * 2、[Swift和OC的方法调用流程区别]() @@ -10,7 +10,12 @@ * 6、[Weak的实现原理]() * 7、[Block() * 8、[AutoreleasePool]() -* 9、[编译过程]() -* 10、[启动过程]() -* 11、[http1.0->1.1->2.2分别升级了什么……](https://www.cnblogs.com/riwang/p/12370785.html) -* 12、[就是这个HTTP1.1这个什么身份认证](https://blog.csdn.net/zhongshanxian/article/details/81294829) +* 9、[编译过程](https://juejin.im/post/6844904040841641998) +* 10、[启动过程](https://juejin.im/post/6844904041873408013) +* 11、[http1.0->1.1->2.2->3区别](https://www.cnblogs.com/riwang/p/12370785.html) +* 12、[HTTP1.1身份认证-摘要认证](https://blog.csdn.net/zhongshanxian/article/details/81294829) +* 13、[聊聊DNS劫持](https://www.jianshu.com/p/63a94cb46cd2) +* 14、[如何保障客户端与服务器交互中的数据安全](https://netsecurity.51cto.com/art/202002/610473.htm) +* 15、[设计一个线程池](https://www.jianshu.com/p/5bb4123e415c)、[iOS 任务调度器:为 CPU和内存减负](https://www.jianshu.com/p/f2a610c77d26) +* 16、[线程怎么保活](https://www.jianshu.com/p/2ffa6678f83d) +* 17、[内存满了之后如何处理](https://juejin.im/post/6844903550187733000) From e6edfdc8ebb950246c80a34e7102c306010c1279 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sun, 8 Nov 2020 16:37:57 +0800 Subject: [PATCH 061/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\347\254\224\350\256\260.md" | 8 +++++- .../\351\235\242\350\257\225\351\242\230.md" | 28 ++++++++++++++----- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 8ed9804a..3140b470 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -105,7 +105,8 @@ * 13、[iOS 基础](https://juejin.im/user/940837683069549/posts) * 14、[深入理解RunLoop](https://blog.ibireme.com/2015/05/18/runloop/) * 15、[BoyangBlog](https://github.com/BiBoyang/BoyangBlog.git) -*16、[阿里、字节:一套高效的iOS面试题](https://juejin.im/post/6844904064937902094) +* 16、[阿里、字节:一套高效的iOS面试题](https://juejin.im/post/6844904064937902094) +* 17、[《招聘一个靠谱的 iOS》](https://github.com/ChenYilong/iOSInterviewQuestions) ## 四、逆向与安全 @@ -169,6 +170,11 @@ * 2、[波儿菜](https://juejin.im/user/2735240659351112) * 3、[写给自己看系列之WebViewJavascriptBridge源码分析](https://juejin.im/post/6844904097192247303) * 4、[JSBridge 实现原理解析](https://github.com/mcuking/blog/issues/39) +* 5、[MLeaksFinder]() +* 6、[JSPatch]() +* 7、[Fishook]() +* 8、[Aspect]() + ## 其它 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index ad4c8e8e..2db9598c 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -2,6 +2,9 @@ ## 面试题 + +### iOS + * 1、 [为什么iOS更新UI操作必须在主线程?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) * 2、[Swift和OC的方法调用流程区别]() * 3、[iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) @@ -12,10 +15,21 @@ * 8、[AutoreleasePool]() * 9、[编译过程](https://juejin.im/post/6844904040841641998) * 10、[启动过程](https://juejin.im/post/6844904041873408013) -* 11、[http1.0->1.1->2.2->3区别](https://www.cnblogs.com/riwang/p/12370785.html) -* 12、[HTTP1.1身份认证-摘要认证](https://blog.csdn.net/zhongshanxian/article/details/81294829) -* 13、[聊聊DNS劫持](https://www.jianshu.com/p/63a94cb46cd2) -* 14、[如何保障客户端与服务器交互中的数据安全](https://netsecurity.51cto.com/art/202002/610473.htm) -* 15、[设计一个线程池](https://www.jianshu.com/p/5bb4123e415c)、[iOS 任务调度器:为 CPU和内存减负](https://www.jianshu.com/p/f2a610c77d26) -* 16、[线程怎么保活](https://www.jianshu.com/p/2ffa6678f83d) -* 17、[内存满了之后如何处理](https://juejin.im/post/6844903550187733000) +* 11、[设计一个线程池](https://www.jianshu.com/p/5bb4123e415c)、[iOS 任务调度器:为 CPU和内存减负](https://www.jianshu.com/p/f2a610c77d26) +* 12、[线程怎么保活](https://www.jianshu.com/p/2ffa6678f83d) +* 13、[内存满了之后如何处理](https://juejin.im/post/6844903550187733000) +* 14、[如何使用 Runtime 给现有的类添加 weak 属性](https://github.com/ChenYilong/iOSInterviewQuestions) +* 15、[加载一个图片经历那些过程](https://www.jianshu.com/p/72dd074728d8) + + +### 网络 + +* 1、[http1.0->1.1->2.2->3区别](https://www.cnblogs.com/riwang/p/12370785.html) +* 2、[HTTP1.1身份认证-摘要认证](https://blog.csdn.net/zhongshanxian/article/details/81294829) +* 3、[聊聊DNS劫持](https://www.jianshu.com/p/63a94cb46cd2) +* 4、[如何保障客户端与服务器交互中的数据安全](https://netsecurity.51cto.com/art/202002/610473.htm) + + +### 算法 + + From c4cec31674f3f41075fed531f980bd7992b95dfa Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 9 Nov 2020 00:19:41 +0800 Subject: [PATCH 062/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/DarkMode/Crash/SLCrashViewController.m | 2 +- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 +- .../DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 6 ++++-- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 9 +++++++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/iOS_Tips/DarkMode/Crash/SLCrashViewController.m b/iOS_Tips/DarkMode/Crash/SLCrashViewController.m index 8df2f28e..daee8442 100644 --- a/iOS_Tips/DarkMode/Crash/SLCrashViewController.m +++ b/iOS_Tips/DarkMode/Crash/SLCrashViewController.m @@ -119,7 +119,7 @@ - (void)crashHandlerDidOutputCrashError:(SLCrashError *)crashError { //调试模式时,强制抛出异常,提醒开发者代码有问题 #if DEBUG - @throw crashError.exception; +// @throw crashError.exception; #endif } diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 9a23ee02..8f3240db 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -5,7 +5,7 @@ * 1、[iOS插件化架构探索](https://mp.weixin.qq.com/s/QJ9YHX-Uy6lDIhJe_5wPGw) * 2、[WKWebview秒开实践分享及问题解决方案](https://juejin.im/post/6887161842406260744) * 3、[iOS基础](https://juejin.im/user/4371313963043661/posts) -* 4、 +* 4、[【性能优化】今日头条iOS客户端启动速度优化](https://www.jianshu.com/p/7096478ccbe7) * 5、 * 6、 * 7、 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 3140b470..78e70fc1 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -19,7 +19,7 @@ * 1.4、启动时间优化 -> 合并减少动态库和类、二进制重排/减少缺页中断、load 的方法处理和耗时监听、异步延时加载、业务流程优化、rootViewController的加载 +> 合并减少动态库和类、尽量不要用C++虚函数(创建虚函数表有开销),、二进制重排/减少缺页中断、load 的方法处理和耗时监听、异步延时加载、业务流程优化、rootViewController的加载 * 1.5、编译时间优化 @@ -80,7 +80,9 @@ > [再谈 iOS App Crash 防护](https://mp.weixin.qq.com/s/l5S_g1PBCiwm4KDtqNFb-A) > [iOS 网络优化: 使你的 App 网络交互更流畅](https://mp.weixin.qq.com/s/YLvpYBwaz8L6fnmzL78Mfg) > [GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) -> [卡顿率降低50%!京东商城APP卡顿监控及优化实践](https://mp.weixin.qq.com/s/aJeAUAjcKOMvznDMGj2UUA) +> [卡顿率降低50%!京东商城APP卡顿监控及优化实践](https://mp.weixin.qq.com/s/aJeAUAjcKOMvznDMGj2UUA) +> [【性能优化】今日头条iOS客户端启动速度优化](https://www.jianshu.com/p/7096478ccbe7) + ## 二、数据结构与算法 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 2db9598c..a7987fd8 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -20,7 +20,10 @@ * 13、[内存满了之后如何处理](https://juejin.im/post/6844903550187733000) * 14、[如何使用 Runtime 给现有的类添加 weak 属性](https://github.com/ChenYilong/iOSInterviewQuestions) * 15、[加载一个图片经历那些过程](https://www.jianshu.com/p/72dd074728d8) - +* 16、[Performselector方法里到底干了啥](https://www.jianshu.com/p/ac14e03d9345) +* 17、[C++虚函数我们一般哪里有用到啊,还有它开销了什么东西?为啥减少使用能优化启动速度?](https://www.dazhuanlan.com/2019/12/09/5dedcdb02c287/) +* 18、[内存缓存优化](https://www.jianshu.com/p/f7376a321c2e) +* 19、[autoreleasepool什么时候释放](https://www.jianshu.com/p/50bdd8438857) ### 网络 @@ -32,4 +35,6 @@ ### 算法 - +* 1、[最大子序和](https://leetcode-cn.com/problems/maximum-subarray/) +* 2、[最大子矩阵](https://leetcode-cn.com/problems/max-submatrix-lcci/) +* 3、[乘积最大子数组](https://leetcode-cn.com/problems/maximum-product-subarray/) From 372b04bcd2f8d6e8107856ab39670e4e5dc373f5 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 9 Nov 2020 18:21:43 +0800 Subject: [PATCH 063/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\345\267\262\346\265\217\350\247\210.md" | 4 ++-- .../\351\235\242\350\257\225\351\242\230.md" | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 8f3240db..46ac9a4b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -6,8 +6,8 @@ * 2、[WKWebview秒开实践分享及问题解决方案](https://juejin.im/post/6887161842406260744) * 3、[iOS基础](https://juejin.im/user/4371313963043661/posts) * 4、[【性能优化】今日头条iOS客户端启动速度优化](https://www.jianshu.com/p/7096478ccbe7) -* 5、 -* 6、 +* 5、 [iOS为什么必须在主线程操作UI?](https://juejin.im/post/6844903763011076110) +* 6、[iOS Rendering 渲染全解析(长文干货)](https://juejin.im/post/6844904162765832206#heading-18) * 7、 * 8、 * 9、 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index a7987fd8..91a9a629 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -5,7 +5,7 @@ ### iOS -* 1、 [为什么iOS更新UI操作必须在主线程?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) +* 1、 [iOS为什么必须在主线程操作UI?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) * 2、[Swift和OC的方法调用流程区别]() * 3、[iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) * 4、[GCD](https://looseyi.github.io/post/notes/01-gcd/) @@ -24,6 +24,15 @@ * 17、[C++虚函数我们一般哪里有用到啊,还有它开销了什么东西?为啥减少使用能优化启动速度?](https://www.dazhuanlan.com/2019/12/09/5dedcdb02c287/) * 18、[内存缓存优化](https://www.jianshu.com/p/f7376a321c2e) * 19、[autoreleasepool什么时候释放](https://www.jianshu.com/p/50bdd8438857) +* 20、[响应链机制]() +* 21、[instrment的Time profilter实现原理原理]() +* 22、[多线程之栅栏函数](https://zhuanlan.zhihu.com/p/142368783) +* 23、[iOS 图像渲染过程、离屏渲染](https://juejin.im/post/6844904162765832206#heading-18) + + + + + ### 网络 @@ -33,6 +42,11 @@ * 4、[如何保障客户端与服务器交互中的数据安全](https://netsecurity.51cto.com/art/202002/610473.htm) + + + + + ### 算法 * 1、[最大子序和](https://leetcode-cn.com/problems/maximum-subarray/) From 7f7b4ae5b3240be13642a804bb0ecbf15077902f Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 10 Nov 2020 00:38:45 +0800 Subject: [PATCH 064/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\345\267\262\346\265\217\350\247\210.md" | 8 ++++---- .../\351\235\242\350\257\225\351\242\230.md" | 15 +++++++++------ ...12\200\346\234\257\345\215\232\345\256\242.md" | 1 + 3 files changed, 14 insertions(+), 10 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 46ac9a4b..36fb715b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -8,7 +8,7 @@ * 4、[【性能优化】今日头条iOS客户端启动速度优化](https://www.jianshu.com/p/7096478ccbe7) * 5、 [iOS为什么必须在主线程操作UI?](https://juejin.im/post/6844903763011076110) * 6、[iOS Rendering 渲染全解析(长文干货)](https://juejin.im/post/6844904162765832206#heading-18) -* 7、 -* 8、 -* 9、 -* 10、 +* 7、[iOS面试指南(2020年6月)参考答案](https://mp.weixin.qq.com/s/n8d0WSQs0n0SlmxqdUU-jg) +* 8、[关于iOS离屏渲染的深入研究](https://zhuanlan.zhihu.com/p/72653360) +* 9、[如何通过静态分析提高iOS代码质量](https://juejin.im/post/6844904164552605709#heading-10) +* 10、[OC项目转Swift指南](https://juejin.im/post/6844904078166720520) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 91a9a629..00d7c63f 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -6,7 +6,7 @@ ### iOS * 1、 [iOS为什么必须在主线程操作UI?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) -* 2、[Swift和OC的方法调用流程区别]() +* 2、[Swift和OC的方法调用流程区别](https://kemchenj.github.io/2017-01-09/) * 3、[iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) * 4、[GCD](https://looseyi.github.io/post/notes/01-gcd/) * 5、[runloop](https://blog.ibireme.com/2015/05/18/runloop/) @@ -28,6 +28,10 @@ * 21、[instrment的Time profilter实现原理原理]() * 22、[多线程之栅栏函数](https://zhuanlan.zhihu.com/p/142368783) * 23、[iOS 图像渲染过程、离屏渲染](https://juejin.im/post/6844904162765832206#heading-18) +* 24、[iOS 架构模式--浅析MVC, MVP, MVVM 和 VIPER]() +* 25、[iOS面试备战-多线程](https://juejin.im/post/6854573211011514382) +* 26、[设计模式]() +* 26、[组件化]() @@ -40,11 +44,7 @@ * 2、[HTTP1.1身份认证-摘要认证](https://blog.csdn.net/zhongshanxian/article/details/81294829) * 3、[聊聊DNS劫持](https://www.jianshu.com/p/63a94cb46cd2) * 4、[如何保障客户端与服务器交互中的数据安全](https://netsecurity.51cto.com/art/202002/610473.htm) - - - - - +* 5、[iOS面试备战-网络篇](https://juejin.im/post/6844904202523639822#comment) ### 算法 @@ -52,3 +52,6 @@ * 1、[最大子序和](https://leetcode-cn.com/problems/maximum-subarray/) * 2、[最大子矩阵](https://leetcode-cn.com/problems/max-submatrix-lcci/) * 3、[乘积最大子数组](https://leetcode-cn.com/problems/maximum-product-subarray/) +* 4、[爬楼梯]() +* 5、[快速排序]() +* 6、[整数反转]() diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index d76570c3..48802b3b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -72,6 +72,7 @@ * 70、[iOSer逆向](https://iosre.com) * 71、[GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) * 72、[折腾范儿の味精](http://awhisper.github.io) +* 73、[zhangferry](https://juejin.im/user/2242659450368119) ## 高质量微信公众号 From ff1e1e753ef4afc925d538f159d5be1fa2242ada Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 10 Nov 2020 00:39:04 +0800 Subject: [PATCH 065/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 00d7c63f..30429f41 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -31,7 +31,7 @@ * 24、[iOS 架构模式--浅析MVC, MVP, MVVM 和 VIPER]() * 25、[iOS面试备战-多线程](https://juejin.im/post/6854573211011514382) * 26、[设计模式]() -* 26、[组件化]() +* 27、[组件化]() From 16fed96bfde0b04846ee363c86cdc2d2a4302eaa Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 3 Nov 2020 14:45:04 +0800 Subject: [PATCH 066/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 4 +++- ...07\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index b6b8e73f..fd9ef70b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -78,7 +78,9 @@ > [抖音品质建设 - iOS启动优化《原理篇》](https://mp.weixin.qq.com/s/3-Sbqe9gxdV6eI1f435BDg) > [iOS Rendering 渲染全解析(长文干货)](https://juejin.im/post/6844904162765832206) > [再谈 iOS App Crash 防护](https://mp.weixin.qq.com/s/l5S_g1PBCiwm4KDtqNFb-A) -> [iOS 网络优化: 使你的 App 网络交互更流畅](https://mp.weixin.qq.com/s/YLvpYBwaz8L6fnmzL78Mfg) +> [iOS 网络优化: 使你的 App 网络交互更流畅](https://mp.weixin.qq.com/s/YLvpYBwaz8L6fnmzL78Mfg) +> [GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) + ## 二、数据结构与算法 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index eb57b37c..a989b897 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -70,6 +70,7 @@ * 68、[iOS一叶](https://juejin.im/user/1899557248829438) * 69、[土土Edmond木](https://looseyi.github.io) * 70、[iOSer逆向](https://iosre.com) +* 71、[GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) ## 高质量微信公众号 From fe53b8c0a4a1086d13bb57dfdc7d5e876c404c6b Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 5 Nov 2020 20:40:50 +0800 Subject: [PATCH 067/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/DarkMode.xcodeproj/project.pbxproj | 10 +- iOS_Tips/DarkMode/.DS_Store | Bin 14340 -> 14340 bytes iOS_Tips/DarkMode/General/Tool/HMLog.h | 236 ++++++++++++++++++ .../\345\267\262\346\265\217\350\247\210.md" | 14 ++ .../\351\235\242\350\257\225\351\242\230.md" | 10 +- ...00\346\234\257\345\215\232\345\256\242.md" | 6 +- 6 files changed, 268 insertions(+), 8 deletions(-) create mode 100644 iOS_Tips/DarkMode/General/Tool/HMLog.h create mode 100644 "iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" diff --git a/iOS_Tips/DarkMode.xcodeproj/project.pbxproj b/iOS_Tips/DarkMode.xcodeproj/project.pbxproj index d7fe7eb0..a1cccdf1 100644 --- a/iOS_Tips/DarkMode.xcodeproj/project.pbxproj +++ b/iOS_Tips/DarkMode.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 2CC813682553CE88009DAC9B /* 已浏览.md in Resources */ = {isa = PBXBuildFile; fileRef = 2CC813672553CE88009DAC9B /* 已浏览.md */; }; 2CEBE85D24A6E65600BA21F3 /* SLTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CEBE85B24A6E65600BA21F3 /* SLTimer.m */; }; 780F5303236D8462000D0EA8 /* SLGridView.m in Sources */ = {isa = PBXBuildFile; fileRef = 780F5302236D8462000D0EA8 /* SLGridView.m */; }; 780F5306236D8570000D0EA8 /* SLImageClipController.m in Sources */ = {isa = PBXBuildFile; fileRef = 780F5305236D8570000D0EA8 /* SLImageClipController.m */; }; @@ -213,6 +214,8 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 2CC813672553CE88009DAC9B /* 已浏览.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = "已浏览.md"; sourceTree = ""; }; + 2CC8137925540CB8009DAC9B /* HMLog.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HMLog.h; sourceTree = ""; }; 2CEBE85B24A6E65600BA21F3 /* SLTimer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SLTimer.m; sourceTree = ""; }; 2CEBE85C24A6E65600BA21F3 /* SLTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SLTimer.h; sourceTree = ""; }; 780F5301236D845B000D0EA8 /* SLGridView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SLGridView.h; sourceTree = ""; }; @@ -846,6 +849,7 @@ isa = PBXGroup; children = ( 78AA10F42371A7B50044A6F8 /* PrefixHeader.pch */, + 2CC8137925540CB8009DAC9B /* HMLog.h */, 78F4E41224E5404A000B2ADE /* SLToolMacro.h */, 78777CE4238FF65C006FA671 /* SLDelayPerform.h */, 78777CE5238FF65C006FA671 /* SLDelayPerform.m */, @@ -938,6 +942,7 @@ 784C4C6F24C5B5DD00D5C199 /* 高质量技术博客.md */, 784C4C6D24C5B4F500D5C199 /* 笔记.md */, 785D06632522C32700F174BA /* 面试题.md */, + 2CC813672553CE88009DAC9B /* 已浏览.md */, 7884247D2492102900C2E505 /* SLWorkIssuesViewController.h */, 7884247E2492102900C2E505 /* SLWorkIssuesViewController.m */, 78908DC024FFBD83004164C2 /* ScrollView嵌套 */, @@ -1427,6 +1432,7 @@ 7811F77124B2C818000AA044 /* wsl.order in Resources */, 78E72D59247BA29600751373 /* WebTableView.html in Resources */, 782CFB7A239E6A11001B5528 /* Glitch.vsh in Resources */, + 2CC813682553CE88009DAC9B /* 已浏览.md in Resources */, 782CFB5A239E6227001B5528 /* Gray.fsh in Resources */, 782CFB66239E6651001B5528 /* HexagonMosaic.fsh in Resources */, 782CFB79239E6A11001B5528 /* Glitch.fsh in Resources */, @@ -1814,7 +1820,7 @@ NEW_SETTING = ""; ORDER_FILE = "$(SRCROOT)/DarkMode/WorkIssues/二进制重排/wsl.order"; OTHER_CFLAGS = "-fsanitize-coverage=func,trace-pc-guard"; - PRODUCT_BUNDLE_IDENTIFIER = com.wsl2ls.tips; + PRODUCT_BUNDLE_IDENTIFIER = com.wsl2ls.iostip; PRODUCT_NAME = SLTips; PROVISIONING_PROFILE_SPECIFIER = ""; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1846,7 +1852,7 @@ NEW_SETTING = ""; ORDER_FILE = "$(SRCROOT)/DarkMode/WorkIssues/二进制重排/wsl.order"; OTHER_CFLAGS = "-fsanitize-coverage=func,trace-pc-guard"; - PRODUCT_BUNDLE_IDENTIFIER = com.wsl2ls.tips; + PRODUCT_BUNDLE_IDENTIFIER = com.wsl2ls.iostip; PRODUCT_NAME = SLTips; PROVISIONING_PROFILE_SPECIFIER = ""; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/iOS_Tips/DarkMode/.DS_Store b/iOS_Tips/DarkMode/.DS_Store index e5fa5b0fb1e5ebf6b6ae4be8472a30e8c86e4bb3..05e7465d5ddd335c7f5ec7003ee1faa1b3eac77a 100644 GIT binary patch delta 23 bcmZoEXerpROOnaJZ1Wz;fBaxt(}NEHa&ZX1 delta 23 bcmZoEXerpROOnaVa`PU^fBaxt(}NEHb1?|f diff --git a/iOS_Tips/DarkMode/General/Tool/HMLog.h b/iOS_Tips/DarkMode/General/Tool/HMLog.h new file mode 100644 index 00000000..ef1bf35f --- /dev/null +++ b/iOS_Tips/DarkMode/General/Tool/HMLog.h @@ -0,0 +1,236 @@ +// The MIT License (MIT) +// +// Copyright (c) 2020 Huimao Chen +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +// GCC_C_LANGUAGE_STANDARD = gnu99 + +#ifndef HMLog_h +#define HMLog_h + +#import + +#pragma mark - Parameters + +// All optional parameters should be defined before import "HMLog.h", or you can modify the source code + +#ifndef HMLogEnable +#define HMLogEnable 1 +#endif // HMLogEnable + +#ifndef HMPrintEnable +#define HMPrintEnable 1 +#endif // HMPrintEnable + +#ifndef HMLogPrefix +#define HMLogPrefix(index, valueString) [NSString stringWithFormat:@"%d: %s = ", index, valueString] +#endif // HMLogPrefix + +#ifndef HMLogHeaderFormatString +#define HMLogHeaderFormatString(FUNC, LINE) \ + [NSString stringWithFormat:@"================ %s [%d] ================\n", FUNC, LINE] +#endif // HMLogHeaderFormatString + +#ifndef HMLogTypeExtension +#define HMLogTypeExtension +#endif // HMLogTypeExtension + +#pragma mark - Core + +// format, private macro +#define _HMLogFormat(VAR) \ + , HMStringify(VAR), @encode(__typeof__(VAR)), (VAR) + +// HMFormatString +#define HMFormatString(...) \ + HMExpand(_HMFormatString(__func__, __LINE__, HMArgCount(__VA_ARGS__) HMForeach(_HMLogFormat, __VA_ARGS__))) + +// HMLog +#if HMLogEnable + #define HMLog(...) \ + _HMLog(HMFormatString(__VA_ARGS__)) +#else + #define HMLog(...) +#endif // HMLogEnable + +// HMPrint +#if HMPrintEnable + #define HMPrint(...) \ + _HMPrint(HMFormatString(__VA_ARGS__)) +#else + #define HMPrint(...) +#endif // HMPrintEnable + + +static inline NSString * _HMFormatString(const char *func, int line, int count, ...) { // func, line, count, [valueString, TypeEncode, value] + NSMutableString *result = [[NSMutableString alloc] init]; + + // handle header + [result appendString:HMLogHeaderFormatString(func, line)]; + + // handle arguments + va_list v; + va_start(v, count); + for (int i = 0; i < count; ++i) { + char *valueString = va_arg(v, char *); + char *type = va_arg(v, char *); + + id obj = nil; + if (strcmp(type, @encode(id)) == 0) { // "@" id + id actual = va_arg(v, id); + obj = actual; + + } else if (strcmp(type, @encode(CGPoint)) == 0) { // "{CGPoint=dd}" CGPoint + CGPoint actual = (CGPoint)va_arg(v, CGPoint); + obj = [NSValue value:&actual withObjCType:type]; + + } else if (strcmp(type, @encode(CGSize)) == 0) { // "{CGSize=dd}" CGSize + CGSize actual = (CGSize)va_arg(v, CGSize); + obj = [NSValue value:&actual withObjCType:type]; + + } else if (strcmp(type, @encode(CGRect)) == 0) { // "{CGRect={CGPoint=dd}{CGSize=dd}}" CGRect + CGRect actual = (CGRect)va_arg(v, CGRect); + obj = [NSValue value:&actual withObjCType:type]; + + } else if (strcmp(type, @encode(UIEdgeInsets)) == 0) { // "{UIEdgeInsets=dddd}" UIEdgeInsets + UIEdgeInsets actual = (UIEdgeInsets)va_arg(v, UIEdgeInsets); + obj = NSStringFromUIEdgeInsets(actual); + + } else if (strcmp(type, @encode(NSRange)) == 0) { // "{_NSRange=QQ}" NSRange + NSRange actual = (NSRange)va_arg(v, NSRange); + obj = NSStringFromRange(actual); + + } else if (strcmp(type, @encode(SEL)) == 0) { // ":" SEL + SEL actual = (SEL)va_arg(v, SEL); + obj = [NSString stringWithFormat:@"SEL: %@", NSStringFromSelector(actual)]; + + } else if (strcmp(type, @encode(Class)) == 0) { // "#" Class + Class actual = (Class)va_arg(v, Class); + obj = NSStringFromClass(actual); + + } else if (strcmp(type, @encode(char *)) == 0) { // "*" char * + char * actual = (char *)va_arg(v, char *); + obj = [NSString stringWithFormat:@"%s", actual]; + + } else if (strcmp(type, @encode(double)) == 0) { // "d" double + double actual = (double)va_arg(v, double); + obj = [NSNumber numberWithDouble:actual]; + + } else if (strcmp(type, @encode(float)) == 0) { // "f" float + float actual = (float)va_arg(v, double); + obj = [NSNumber numberWithFloat:actual]; + + } else if (strcmp(type, @encode(int)) == 0) { // "i" int + int actual = (int)va_arg(v, int); + obj = [NSNumber numberWithInt:actual]; + + } else if (strcmp(type, @encode(long)) == 0) { // "q" long + long actual = (long)va_arg(v, long); + obj = [NSNumber numberWithLong:actual]; + + } else if (strcmp(type, @encode(long long)) == 0) { // "q" long long + long long actual = (long long)va_arg(v, long long); + obj = [NSNumber numberWithLongLong:actual]; + + } else if (strcmp(type, @encode(short)) == 0) { // "s" short + short actual = (short)va_arg(v, int); + obj = [NSNumber numberWithShort:actual]; + + } else if (strcmp(type, @encode(char)) == 0) { // "c" char & BOOL(32bit) + char actual = (char)va_arg(v, int); + obj = [NSString stringWithFormat:@"%d char:%c", actual, actual]; + + } else if (strcmp(type, @encode(bool)) == 0) { // "B" bool & BOOL(64bit) + bool actual = (bool)va_arg(v, int); + obj = actual ? @"YES" : @"NO"; + + } else if (strcmp(type, @encode(unsigned char)) == 0) { // "C" unsigned char + unsigned char actual = (unsigned char)va_arg(v, unsigned int); + obj = [NSString stringWithFormat:@"%d unsigned char:%c", actual, actual]; + + } else if (strcmp(type, @encode(unsigned int)) == 0) { // "I" unsigned int + unsigned int actual = (unsigned int)va_arg(v, unsigned int); + obj = [NSNumber numberWithUnsignedInt:actual]; + + } else if (strcmp(type, @encode(unsigned long)) == 0) { // "Q" unsigned long + unsigned long actual = (unsigned long)va_arg(v, unsigned long); + obj = [NSNumber numberWithUnsignedLong:actual]; + + } else if (strcmp(type, @encode(unsigned long long)) == 0) { // "Q" unsigned long long + unsigned long long actual = (unsigned long long)va_arg(v, unsigned long long); + obj = [NSNumber numberWithUnsignedLongLong:actual]; + + } else if (strcmp(type, @encode(unsigned short)) == 0) { // "S" unsigned short + unsigned short actual = (unsigned short)va_arg(v, unsigned int); + obj = [NSNumber numberWithUnsignedShort:actual]; + + } HMLogTypeExtension else { + [result appendString:@"Error: unknown type"]; + break; + } + + [result appendFormat:@"%@%@\n", ((void)(valueString), HMLogPrefix(i, valueString)), obj]; + } + va_end(v); + + return [result copy]; +} + +static inline void _HMLog(NSString *str) { + NSLog(@"\n%@", str); +} + +static inline void _HMPrint(NSString *str) { + printf("%s\n", str.UTF8String); +} + +#pragma mark - Helper + +#define HMStringify(VALUE) _HMStringify(VALUE) +#define _HMStringify(VALUE) # VALUE + +#define HMConcat(A, B) _HMConcat(A, B) +#define _HMConcat(A, B) A ## B + +// Return the number of arguments (up to twenty) provided to the macro. +#define HMArgCount(...) _HMArgCount(A, ##__VA_ARGS__, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) +#define _HMArgCount(A, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, COUNT, ...) COUNT + +// If the number of arguments is 0, return 0, otherwise return N. +#define HMArgCheck(...) _HMArgCheck(A, ##__VA_ARGS__, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 0) +#define _HMArgCheck(A, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, OBJ, ...) OBJ + +// Each argument will be passed to the MACRO, the MACRO must be this form: MACRO(arg). Inspired by https://stackoverflow.com/questions/3136686/is-the-c99-preprocessor-turing-complete/10526117#10526117 +#define HMForeach(MACRO, ...) HMConcat(_HMForeach, HMArgCheck(__VA_ARGS__)) (MACRO, ##__VA_ARGS__) +#define _HMForeach() HMForeach +#define _HMForeach0(MACRO) +#define _HMForeachN(MACRO, A, ...) MACRO(A) HMDefer(_HMForeach)() (MACRO, ##__VA_ARGS__) + +#define HMEmpty() +#define HMDefer(ID) ID HMEmpty() + +// For more scans +#define HMExpand(...) _HMExpand1(_HMExpand1(_HMExpand1(__VA_ARGS__))) +#define _HMExpand1(...) _HMExpand2(_HMExpand2(_HMExpand2(__VA_ARGS__))) +#define _HMExpand2(...) _HMExpand3(_HMExpand3(_HMExpand3(__VA_ARGS__))) +#define _HMExpand3(...) __VA_ARGS__ + + +#endif // HMLog_h diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" new file mode 100644 index 00000000..60604f9e --- /dev/null +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -0,0 +1,14 @@ + + +## 已浏览 + +* 1、[iOS插件化架构探索](https://mp.weixin.qq.com/s/QJ9YHX-Uy6lDIhJe_5wPGw) +* 2、 +* 3、 +* 4、 +* 5、 +* 6、 +* 7、 +* 8、 +* 9、 +* 10、 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 2b727d18..d68114d1 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -3,12 +3,12 @@ ## 面试知识点 * 1、 [为什么iOS更新UI操作必须在主线程?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) -* 2、Swift和OC的方法调用流程区别? +* 2、[Swift和OC的方法调用流程区别]() * 3、[iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) * 4、[GCD](https://looseyi.github.io/post/notes/01-gcd/) * 5、[runloop](https://blog.ibireme.com/2015/05/18/runloop/) * 6、[Weak的实现原理]() -* 6、[Block() -* 6、[AutoreleasePool]() -* 6、[编译过程]() -* 6、[启动过程]() +* 7、[Block() +* 8、[AutoreleasePool]() +* 9、[编译过程]() +* 10、[启动过程]() diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index a989b897..d76570c3 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -1,5 +1,5 @@ -## 高质量技术博客集合 +## 高质量技术博客 * 1、[WeRead团队博客](https://wereadteam.github.io/) * 2、[美团技术团队](https://tech.meituan.com/) @@ -71,6 +71,8 @@ * 69、[土土Edmond木](https://looseyi.github.io) * 70、[iOSer逆向](https://iosre.com) * 71、[GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) +* 72、[折腾范儿の味精](http://awhisper.github.io) + ## 高质量微信公众号 @@ -93,6 +95,8 @@ * 17、[淘系技术](公众号:AlibabaMTT) * 18、[我是程序员小贱](公众号:Lanj1995Q) * 19、[腾讯技术工程](公众号:Tencent_TEG) +* 20、[搜狐技术产品](公众号:sohu-tech) +* 21、[百度APP技术](公众号:gh_59f5931152fe) ## 书籍 From fd2574748d800c5772d2e48f0dfb91903be6dca4 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 5 Nov 2020 22:42:48 +0800 Subject: [PATCH 068/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index fd9ef70b..90bcf8b9 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -137,6 +137,7 @@ * 5、[js-native 通信的 6 种方式](https://mp.weixin.qq.com/s/_Xo6O3NoE1z9AIMJm_uSsA) * 6、[美团外卖客户端容器化架构的演进](https://mp.weixin.qq.com/s/kW5wu7GM7pMRRvN-dQvE2g) * 7、[SYWebViewBridge](https://mp.weixin.qq.com/s/JDCyWg1AYemxbnFbvY5E9w) +* 8、[JSPatch-实现原理详解](https://github.com/bang590/JSPatch/wiki/JSPatch-实现原理详解) ## 七、Shell脚本 From b1f2b9dd457364a7cb0392b92c8e2a63fec0ea33 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 6 Nov 2020 14:45:36 +0800 Subject: [PATCH 069/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 +- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 60604f9e..95b36c35 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -3,7 +3,7 @@ ## 已浏览 * 1、[iOS插件化架构探索](https://mp.weixin.qq.com/s/QJ9YHX-Uy6lDIhJe_5wPGw) -* 2、 +* 2、[WKWebview秒开实践分享及问题解决方案](https://juejin.im/post/6887161842406260744) * 3、 * 4、 * 5、 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 90bcf8b9..623e4b0a 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -138,6 +138,7 @@ * 6、[美团外卖客户端容器化架构的演进](https://mp.weixin.qq.com/s/kW5wu7GM7pMRRvN-dQvE2g) * 7、[SYWebViewBridge](https://mp.weixin.qq.com/s/JDCyWg1AYemxbnFbvY5E9w) * 8、[JSPatch-实现原理详解](https://github.com/bang590/JSPatch/wiki/JSPatch-实现原理详解) +* 9、[WKWebview秒开实践分享及问题解决方案](https://juejin.im/post/6887161842406260744) ## 七、Shell脚本 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index d68114d1..82d20c72 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -12,3 +12,5 @@ * 8、[AutoreleasePool]() * 9、[编译过程]() * 10、[启动过程]() +* 11、[http1.0->1.1->2.2分别升级了什么……](https://www.cnblogs.com/riwang/p/12370785.html) +* 12、[就是这个HTTP1.1这个什么身份认证](https://blog.csdn.net/zhongshanxian/article/details/81294829) From 2b7598355f3ccd1345af0a1a6ebb821f89fa0a4c Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 6 Nov 2020 23:52:01 +0800 Subject: [PATCH 070/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/APM/APMMonitor/SLSystemAppInfo.h | 2 +- .../WorkIssues/APM/APMMonitor/SLSystemAppInfo.m | 2 +- .../\345\267\262\346\265\217\350\247\210.md" | 2 +- .../WorkIssues/\347\254\224\350\256\260.md" | 4 ++-- .../\351\235\242\350\257\225\351\242\230.md" | 15 ++++++++++----- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.h b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.h index 83334dca..cbb31b7f 100644 --- a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.h +++ b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.h @@ -42,7 +42,7 @@ NS_ASSUME_NONNULL_BEGIN + (NSString *)systemName; ///获取用户手机别名 用户定义的名称 通用-关于本机-名称 wsl的iphone + (NSString *)userPhoneName; -///设备唯一标识的字母数字字符串 C5668446-C443-4898-A213-209AECE3626C +///设备唯一标识的字母数字字符串 但如果用户重新安装,那么这个 UUID 就会发生变化。 C5668446-C443-4898-A213-209AECE3626C + (NSString *)uuidString; ///是否是iPhoneX系列/刘海屏 + (BOOL)isIPhoneXSeries; diff --git a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.m b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.m index 2094a5b6..974e58fc 100644 --- a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.m +++ b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLSystemAppInfo.m @@ -150,7 +150,7 @@ + (NSString *)userPhoneName { NSString* userPhoneName = [[UIDevice currentDevice] name]; return userPhoneName; } -///设备唯一标识的字母数字字符串 C5668446-C443-4898-A213-209AECE3626C +///设备唯一标识的字母数字字符串,但如果用户重新安装,那么这个 UUID 就会发生变化。 C5668446-C443-4898-A213-209AECE3626C + (NSString *)uuidString { NSString *UUIDString = [[UIDevice currentDevice] identifierForVendor].UUIDString; return UUIDString; diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 95b36c35..9a23ee02 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -4,7 +4,7 @@ * 1、[iOS插件化架构探索](https://mp.weixin.qq.com/s/QJ9YHX-Uy6lDIhJe_5wPGw) * 2、[WKWebview秒开实践分享及问题解决方案](https://juejin.im/post/6887161842406260744) -* 3、 +* 3、[iOS基础](https://juejin.im/user/4371313963043661/posts) * 4、 * 5、 * 6、 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 623e4b0a..8ed9804a 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -79,8 +79,8 @@ > [iOS Rendering 渲染全解析(长文干货)](https://juejin.im/post/6844904162765832206) > [再谈 iOS App Crash 防护](https://mp.weixin.qq.com/s/l5S_g1PBCiwm4KDtqNFb-A) > [iOS 网络优化: 使你的 App 网络交互更流畅](https://mp.weixin.qq.com/s/YLvpYBwaz8L6fnmzL78Mfg) -> [GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) - +> [GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) +> [卡顿率降低50%!京东商城APP卡顿监控及优化实践](https://mp.weixin.qq.com/s/aJeAUAjcKOMvznDMGj2UUA) ## 二、数据结构与算法 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 82d20c72..ad4c8e8e 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -1,6 +1,6 @@ -## 面试知识点 +## 面试题 * 1、 [为什么iOS更新UI操作必须在主线程?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) * 2、[Swift和OC的方法调用流程区别]() @@ -10,7 +10,12 @@ * 6、[Weak的实现原理]() * 7、[Block() * 8、[AutoreleasePool]() -* 9、[编译过程]() -* 10、[启动过程]() -* 11、[http1.0->1.1->2.2分别升级了什么……](https://www.cnblogs.com/riwang/p/12370785.html) -* 12、[就是这个HTTP1.1这个什么身份认证](https://blog.csdn.net/zhongshanxian/article/details/81294829) +* 9、[编译过程](https://juejin.im/post/6844904040841641998) +* 10、[启动过程](https://juejin.im/post/6844904041873408013) +* 11、[http1.0->1.1->2.2->3区别](https://www.cnblogs.com/riwang/p/12370785.html) +* 12、[HTTP1.1身份认证-摘要认证](https://blog.csdn.net/zhongshanxian/article/details/81294829) +* 13、[聊聊DNS劫持](https://www.jianshu.com/p/63a94cb46cd2) +* 14、[如何保障客户端与服务器交互中的数据安全](https://netsecurity.51cto.com/art/202002/610473.htm) +* 15、[设计一个线程池](https://www.jianshu.com/p/5bb4123e415c)、[iOS 任务调度器:为 CPU和内存减负](https://www.jianshu.com/p/f2a610c77d26) +* 16、[线程怎么保活](https://www.jianshu.com/p/2ffa6678f83d) +* 17、[内存满了之后如何处理](https://juejin.im/post/6844903550187733000) From 1c968456b622e5987000b2735df0ac56a123f788 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sun, 8 Nov 2020 16:37:57 +0800 Subject: [PATCH 071/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\347\254\224\350\256\260.md" | 8 +++++- .../\351\235\242\350\257\225\351\242\230.md" | 28 ++++++++++++++----- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 8ed9804a..3140b470 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -105,7 +105,8 @@ * 13、[iOS 基础](https://juejin.im/user/940837683069549/posts) * 14、[深入理解RunLoop](https://blog.ibireme.com/2015/05/18/runloop/) * 15、[BoyangBlog](https://github.com/BiBoyang/BoyangBlog.git) -*16、[阿里、字节:一套高效的iOS面试题](https://juejin.im/post/6844904064937902094) +* 16、[阿里、字节:一套高效的iOS面试题](https://juejin.im/post/6844904064937902094) +* 17、[《招聘一个靠谱的 iOS》](https://github.com/ChenYilong/iOSInterviewQuestions) ## 四、逆向与安全 @@ -169,6 +170,11 @@ * 2、[波儿菜](https://juejin.im/user/2735240659351112) * 3、[写给自己看系列之WebViewJavascriptBridge源码分析](https://juejin.im/post/6844904097192247303) * 4、[JSBridge 实现原理解析](https://github.com/mcuking/blog/issues/39) +* 5、[MLeaksFinder]() +* 6、[JSPatch]() +* 7、[Fishook]() +* 8、[Aspect]() + ## 其它 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index ad4c8e8e..2db9598c 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -2,6 +2,9 @@ ## 面试题 + +### iOS + * 1、 [为什么iOS更新UI操作必须在主线程?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) * 2、[Swift和OC的方法调用流程区别]() * 3、[iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) @@ -12,10 +15,21 @@ * 8、[AutoreleasePool]() * 9、[编译过程](https://juejin.im/post/6844904040841641998) * 10、[启动过程](https://juejin.im/post/6844904041873408013) -* 11、[http1.0->1.1->2.2->3区别](https://www.cnblogs.com/riwang/p/12370785.html) -* 12、[HTTP1.1身份认证-摘要认证](https://blog.csdn.net/zhongshanxian/article/details/81294829) -* 13、[聊聊DNS劫持](https://www.jianshu.com/p/63a94cb46cd2) -* 14、[如何保障客户端与服务器交互中的数据安全](https://netsecurity.51cto.com/art/202002/610473.htm) -* 15、[设计一个线程池](https://www.jianshu.com/p/5bb4123e415c)、[iOS 任务调度器:为 CPU和内存减负](https://www.jianshu.com/p/f2a610c77d26) -* 16、[线程怎么保活](https://www.jianshu.com/p/2ffa6678f83d) -* 17、[内存满了之后如何处理](https://juejin.im/post/6844903550187733000) +* 11、[设计一个线程池](https://www.jianshu.com/p/5bb4123e415c)、[iOS 任务调度器:为 CPU和内存减负](https://www.jianshu.com/p/f2a610c77d26) +* 12、[线程怎么保活](https://www.jianshu.com/p/2ffa6678f83d) +* 13、[内存满了之后如何处理](https://juejin.im/post/6844903550187733000) +* 14、[如何使用 Runtime 给现有的类添加 weak 属性](https://github.com/ChenYilong/iOSInterviewQuestions) +* 15、[加载一个图片经历那些过程](https://www.jianshu.com/p/72dd074728d8) + + +### 网络 + +* 1、[http1.0->1.1->2.2->3区别](https://www.cnblogs.com/riwang/p/12370785.html) +* 2、[HTTP1.1身份认证-摘要认证](https://blog.csdn.net/zhongshanxian/article/details/81294829) +* 3、[聊聊DNS劫持](https://www.jianshu.com/p/63a94cb46cd2) +* 4、[如何保障客户端与服务器交互中的数据安全](https://netsecurity.51cto.com/art/202002/610473.htm) + + +### 算法 + + From 9a8b0234746f94fa4ebf47038a83587f7ce60b58 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 9 Nov 2020 00:19:41 +0800 Subject: [PATCH 072/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/DarkMode/Crash/SLCrashViewController.m | 2 +- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 +- .../DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 6 ++++-- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 9 +++++++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/iOS_Tips/DarkMode/Crash/SLCrashViewController.m b/iOS_Tips/DarkMode/Crash/SLCrashViewController.m index 8df2f28e..daee8442 100644 --- a/iOS_Tips/DarkMode/Crash/SLCrashViewController.m +++ b/iOS_Tips/DarkMode/Crash/SLCrashViewController.m @@ -119,7 +119,7 @@ - (void)crashHandlerDidOutputCrashError:(SLCrashError *)crashError { //调试模式时,强制抛出异常,提醒开发者代码有问题 #if DEBUG - @throw crashError.exception; +// @throw crashError.exception; #endif } diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 9a23ee02..8f3240db 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -5,7 +5,7 @@ * 1、[iOS插件化架构探索](https://mp.weixin.qq.com/s/QJ9YHX-Uy6lDIhJe_5wPGw) * 2、[WKWebview秒开实践分享及问题解决方案](https://juejin.im/post/6887161842406260744) * 3、[iOS基础](https://juejin.im/user/4371313963043661/posts) -* 4、 +* 4、[【性能优化】今日头条iOS客户端启动速度优化](https://www.jianshu.com/p/7096478ccbe7) * 5、 * 6、 * 7、 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 3140b470..78e70fc1 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -19,7 +19,7 @@ * 1.4、启动时间优化 -> 合并减少动态库和类、二进制重排/减少缺页中断、load 的方法处理和耗时监听、异步延时加载、业务流程优化、rootViewController的加载 +> 合并减少动态库和类、尽量不要用C++虚函数(创建虚函数表有开销),、二进制重排/减少缺页中断、load 的方法处理和耗时监听、异步延时加载、业务流程优化、rootViewController的加载 * 1.5、编译时间优化 @@ -80,7 +80,9 @@ > [再谈 iOS App Crash 防护](https://mp.weixin.qq.com/s/l5S_g1PBCiwm4KDtqNFb-A) > [iOS 网络优化: 使你的 App 网络交互更流畅](https://mp.weixin.qq.com/s/YLvpYBwaz8L6fnmzL78Mfg) > [GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) -> [卡顿率降低50%!京东商城APP卡顿监控及优化实践](https://mp.weixin.qq.com/s/aJeAUAjcKOMvznDMGj2UUA) +> [卡顿率降低50%!京东商城APP卡顿监控及优化实践](https://mp.weixin.qq.com/s/aJeAUAjcKOMvznDMGj2UUA) +> [【性能优化】今日头条iOS客户端启动速度优化](https://www.jianshu.com/p/7096478ccbe7) + ## 二、数据结构与算法 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 2db9598c..a7987fd8 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -20,7 +20,10 @@ * 13、[内存满了之后如何处理](https://juejin.im/post/6844903550187733000) * 14、[如何使用 Runtime 给现有的类添加 weak 属性](https://github.com/ChenYilong/iOSInterviewQuestions) * 15、[加载一个图片经历那些过程](https://www.jianshu.com/p/72dd074728d8) - +* 16、[Performselector方法里到底干了啥](https://www.jianshu.com/p/ac14e03d9345) +* 17、[C++虚函数我们一般哪里有用到啊,还有它开销了什么东西?为啥减少使用能优化启动速度?](https://www.dazhuanlan.com/2019/12/09/5dedcdb02c287/) +* 18、[内存缓存优化](https://www.jianshu.com/p/f7376a321c2e) +* 19、[autoreleasepool什么时候释放](https://www.jianshu.com/p/50bdd8438857) ### 网络 @@ -32,4 +35,6 @@ ### 算法 - +* 1、[最大子序和](https://leetcode-cn.com/problems/maximum-subarray/) +* 2、[最大子矩阵](https://leetcode-cn.com/problems/max-submatrix-lcci/) +* 3、[乘积最大子数组](https://leetcode-cn.com/problems/maximum-product-subarray/) From e31963adf9205b5f5b61cd355db90daad9518864 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 9 Nov 2020 18:21:43 +0800 Subject: [PATCH 073/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\345\267\262\346\265\217\350\247\210.md" | 4 ++-- .../\351\235\242\350\257\225\351\242\230.md" | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 8f3240db..46ac9a4b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -6,8 +6,8 @@ * 2、[WKWebview秒开实践分享及问题解决方案](https://juejin.im/post/6887161842406260744) * 3、[iOS基础](https://juejin.im/user/4371313963043661/posts) * 4、[【性能优化】今日头条iOS客户端启动速度优化](https://www.jianshu.com/p/7096478ccbe7) -* 5、 -* 6、 +* 5、 [iOS为什么必须在主线程操作UI?](https://juejin.im/post/6844903763011076110) +* 6、[iOS Rendering 渲染全解析(长文干货)](https://juejin.im/post/6844904162765832206#heading-18) * 7、 * 8、 * 9、 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index a7987fd8..91a9a629 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -5,7 +5,7 @@ ### iOS -* 1、 [为什么iOS更新UI操作必须在主线程?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) +* 1、 [iOS为什么必须在主线程操作UI?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) * 2、[Swift和OC的方法调用流程区别]() * 3、[iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) * 4、[GCD](https://looseyi.github.io/post/notes/01-gcd/) @@ -24,6 +24,15 @@ * 17、[C++虚函数我们一般哪里有用到啊,还有它开销了什么东西?为啥减少使用能优化启动速度?](https://www.dazhuanlan.com/2019/12/09/5dedcdb02c287/) * 18、[内存缓存优化](https://www.jianshu.com/p/f7376a321c2e) * 19、[autoreleasepool什么时候释放](https://www.jianshu.com/p/50bdd8438857) +* 20、[响应链机制]() +* 21、[instrment的Time profilter实现原理原理]() +* 22、[多线程之栅栏函数](https://zhuanlan.zhihu.com/p/142368783) +* 23、[iOS 图像渲染过程、离屏渲染](https://juejin.im/post/6844904162765832206#heading-18) + + + + + ### 网络 @@ -33,6 +42,11 @@ * 4、[如何保障客户端与服务器交互中的数据安全](https://netsecurity.51cto.com/art/202002/610473.htm) + + + + + ### 算法 * 1、[最大子序和](https://leetcode-cn.com/problems/maximum-subarray/) From a64be60de73e9ec8255023974d8b0b89dcc95535 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 10 Nov 2020 00:38:45 +0800 Subject: [PATCH 074/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\345\267\262\346\265\217\350\247\210.md" | 8 ++++---- .../\351\235\242\350\257\225\351\242\230.md" | 15 +++++++++------ ...12\200\346\234\257\345\215\232\345\256\242.md" | 1 + 3 files changed, 14 insertions(+), 10 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 46ac9a4b..36fb715b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -8,7 +8,7 @@ * 4、[【性能优化】今日头条iOS客户端启动速度优化](https://www.jianshu.com/p/7096478ccbe7) * 5、 [iOS为什么必须在主线程操作UI?](https://juejin.im/post/6844903763011076110) * 6、[iOS Rendering 渲染全解析(长文干货)](https://juejin.im/post/6844904162765832206#heading-18) -* 7、 -* 8、 -* 9、 -* 10、 +* 7、[iOS面试指南(2020年6月)参考答案](https://mp.weixin.qq.com/s/n8d0WSQs0n0SlmxqdUU-jg) +* 8、[关于iOS离屏渲染的深入研究](https://zhuanlan.zhihu.com/p/72653360) +* 9、[如何通过静态分析提高iOS代码质量](https://juejin.im/post/6844904164552605709#heading-10) +* 10、[OC项目转Swift指南](https://juejin.im/post/6844904078166720520) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 91a9a629..00d7c63f 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -6,7 +6,7 @@ ### iOS * 1、 [iOS为什么必须在主线程操作UI?](https://778477.github.io/2017/06/19/2017-06-19-为什么iOS更新UI操作必须在主线程/) -* 2、[Swift和OC的方法调用流程区别]() +* 2、[Swift和OC的方法调用流程区别](https://kemchenj.github.io/2017-01-09/) * 3、[iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) * 4、[GCD](https://looseyi.github.io/post/notes/01-gcd/) * 5、[runloop](https://blog.ibireme.com/2015/05/18/runloop/) @@ -28,6 +28,10 @@ * 21、[instrment的Time profilter实现原理原理]() * 22、[多线程之栅栏函数](https://zhuanlan.zhihu.com/p/142368783) * 23、[iOS 图像渲染过程、离屏渲染](https://juejin.im/post/6844904162765832206#heading-18) +* 24、[iOS 架构模式--浅析MVC, MVP, MVVM 和 VIPER]() +* 25、[iOS面试备战-多线程](https://juejin.im/post/6854573211011514382) +* 26、[设计模式]() +* 26、[组件化]() @@ -40,11 +44,7 @@ * 2、[HTTP1.1身份认证-摘要认证](https://blog.csdn.net/zhongshanxian/article/details/81294829) * 3、[聊聊DNS劫持](https://www.jianshu.com/p/63a94cb46cd2) * 4、[如何保障客户端与服务器交互中的数据安全](https://netsecurity.51cto.com/art/202002/610473.htm) - - - - - +* 5、[iOS面试备战-网络篇](https://juejin.im/post/6844904202523639822#comment) ### 算法 @@ -52,3 +52,6 @@ * 1、[最大子序和](https://leetcode-cn.com/problems/maximum-subarray/) * 2、[最大子矩阵](https://leetcode-cn.com/problems/max-submatrix-lcci/) * 3、[乘积最大子数组](https://leetcode-cn.com/problems/maximum-product-subarray/) +* 4、[爬楼梯]() +* 5、[快速排序]() +* 6、[整数反转]() diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index d76570c3..48802b3b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -72,6 +72,7 @@ * 70、[iOSer逆向](https://iosre.com) * 71、[GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) * 72、[折腾范儿の味精](http://awhisper.github.io) +* 73、[zhangferry](https://juejin.im/user/2242659450368119) ## 高质量微信公众号 From 2fd4648e5300449ffdac556f60fd36f2b794b84e Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 10 Nov 2020 00:39:04 +0800 Subject: [PATCH 075/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 00d7c63f..30429f41 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -31,7 +31,7 @@ * 24、[iOS 架构模式--浅析MVC, MVP, MVVM 和 VIPER]() * 25、[iOS面试备战-多线程](https://juejin.im/post/6854573211011514382) * 26、[设计模式]() -* 26、[组件化]() +* 27、[组件化]() From 556fd58a9c88e14126d4b1870dbc3d51cd6f2542 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 10 Nov 2020 19:00:01 +0800 Subject: [PATCH 076/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 ++ .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 36fb715b..7fb81102 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -12,3 +12,5 @@ * 8、[关于iOS离屏渲染的深入研究](https://zhuanlan.zhihu.com/p/72653360) * 9、[如何通过静态分析提高iOS代码质量](https://juejin.im/post/6844904164552605709#heading-10) * 10、[OC项目转Swift指南](https://juejin.im/post/6844904078166720520) +* 11、[iOS蓝牙知识快速入门(详尽版)](https://juejin.im/post/6844903824847536135) +* 12、[译】更好的了解Xcode构建系统](https://juejin.im/post/6844904200887861262) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 30429f41..2c6aefa0 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -28,7 +28,7 @@ * 21、[instrment的Time profilter实现原理原理]() * 22、[多线程之栅栏函数](https://zhuanlan.zhihu.com/p/142368783) * 23、[iOS 图像渲染过程、离屏渲染](https://juejin.im/post/6844904162765832206#heading-18) -* 24、[iOS 架构模式--浅析MVC, MVP, MVVM 和 VIPER]() +* 24、[iOS 架构模式--浅析MVC, MVP, MVVM 和 VIPER](https://zhangferry.com/2019/11/22/ios_architecture_patterns/) * 25、[iOS面试备战-多线程](https://juejin.im/post/6854573211011514382) * 26、[设计模式]() * 27、[组件化]() From 246f047e620ea3573b7666619e3dd8397eaac7d8 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 10 Nov 2020 19:26:18 +0800 Subject: [PATCH 077/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 78e70fc1..3605e9af 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -109,6 +109,7 @@ * 15、[BoyangBlog](https://github.com/BiBoyang/BoyangBlog.git) * 16、[阿里、字节:一套高效的iOS面试题](https://juejin.im/post/6844904064937902094) * 17、[《招聘一个靠谱的 iOS》](https://github.com/ChenYilong/iOSInterviewQuestions) +* 18、[聚焦于iOS开发面试题和开发笔记](https://github.com/DevDragonLi/iOSInterviewsAndDevNotes) ## 四、逆向与安全 From b5f9485231baa77b53507c71ebf9a6706e098514 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 10 Nov 2020 21:02:36 +0800 Subject: [PATCH 078/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 2c6aefa0..3074fa97 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -32,6 +32,7 @@ * 25、[iOS面试备战-多线程](https://juejin.im/post/6854573211011514382) * 26、[设计模式]() * 27、[组件化]() +* 28、[md5实现原理](https://www.jianshu.com/p/82729c87ef68) From c7730435d9266f0f1acec61113855df071a704c0 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 10 Nov 2020 23:56:33 +0800 Subject: [PATCH 079/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 1 + .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 7fb81102..569e6e81 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -14,3 +14,4 @@ * 10、[OC项目转Swift指南](https://juejin.im/post/6844904078166720520) * 11、[iOS蓝牙知识快速入门(详尽版)](https://juejin.im/post/6844903824847536135) * 12、[译】更好的了解Xcode构建系统](https://juejin.im/post/6844904200887861262) +* 13、[iOS组件化方案的几种实现](https://www.jianshu.com/p/2a7e2aa0748b) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 3074fa97..5b1cb5e8 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -31,8 +31,9 @@ * 24、[iOS 架构模式--浅析MVC, MVP, MVVM 和 VIPER](https://zhangferry.com/2019/11/22/ios_architecture_patterns/) * 25、[iOS面试备战-多线程](https://juejin.im/post/6854573211011514382) * 26、[设计模式]() -* 27、[组件化]() -* 28、[md5实现原理](https://www.jianshu.com/p/82729c87ef68) +* 27、[组件化](https://www.jianshu.com/p/40060fa2a564) +* 28、[组件化采坑](https://juejin.im/post/6844903731738345479) +* 29、[md5实现原理](https://www.jianshu.com/p/82729c87ef68) From 460f894b7299f81ea59323a64176f3c729e4237e Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 11 Nov 2020 00:16:36 +0800 Subject: [PATCH 080/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 569e6e81..a3c70be8 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -15,3 +15,5 @@ * 11、[iOS蓝牙知识快速入门(详尽版)](https://juejin.im/post/6844903824847536135) * 12、[译】更好的了解Xcode构建系统](https://juejin.im/post/6844904200887861262) * 13、[iOS组件化方案的几种实现](https://www.jianshu.com/p/2a7e2aa0748b) +* 14、[分析MVC, MVP, MVVM 和 VIPER](https://blog.csdn.net/weixin_40200876/article/details/87635190) + From d87b83bae52f5176a6427826febf4b01ba5367cd Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 11 Nov 2020 01:22:23 +0800 Subject: [PATCH 081/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index a3c70be8..2b4515cf 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -16,4 +16,5 @@ * 12、[译】更好的了解Xcode构建系统](https://juejin.im/post/6844904200887861262) * 13、[iOS组件化方案的几种实现](https://www.jianshu.com/p/2a7e2aa0748b) * 14、[分析MVC, MVP, MVVM 和 VIPER](https://blog.csdn.net/weixin_40200876/article/details/87635190) +* 15、[RAC相关](https://www.jianshu.com/p/cd4031fbf8ff) From c22f8244df9349bd5ac1b4a013c5bed3613c6757 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 11 Nov 2020 01:25:22 +0800 Subject: [PATCH 082/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 2b4515cf..601b47d7 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -17,4 +17,4 @@ * 13、[iOS组件化方案的几种实现](https://www.jianshu.com/p/2a7e2aa0748b) * 14、[分析MVC, MVP, MVVM 和 VIPER](https://blog.csdn.net/weixin_40200876/article/details/87635190) * 15、[RAC相关](https://www.jianshu.com/p/cd4031fbf8ff) - +* 16、[synchronized的内部实现原理](https://blog.csdn.net/qq_28551705/article/details/86094764) From 1264b9ecd9adb94b283ccfb64ef1fa47f1f90974 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 11 Nov 2020 01:46:05 +0800 Subject: [PATCH 083/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 601b47d7..315da025 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -17,4 +17,4 @@ * 13、[iOS组件化方案的几种实现](https://www.jianshu.com/p/2a7e2aa0748b) * 14、[分析MVC, MVP, MVVM 和 VIPER](https://blog.csdn.net/weixin_40200876/article/details/87635190) * 15、[RAC相关](https://www.jianshu.com/p/cd4031fbf8ff) -* 16、[synchronized的内部实现原理](https://blog.csdn.net/qq_28551705/article/details/86094764) +* 16、[synchronized的内部实现原理](https://www.jianshu.com/p/d93c5d3f5e7d) From efacdb6080d5e14e53fbe816babcd029f2e02973 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 11 Nov 2020 02:06:53 +0800 Subject: [PATCH 084/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 315da025..82be2968 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -17,4 +17,4 @@ * 13、[iOS组件化方案的几种实现](https://www.jianshu.com/p/2a7e2aa0748b) * 14、[分析MVC, MVP, MVVM 和 VIPER](https://blog.csdn.net/weixin_40200876/article/details/87635190) * 15、[RAC相关](https://www.jianshu.com/p/cd4031fbf8ff) -* 16、[synchronized的内部实现原理](https://www.jianshu.com/p/d93c5d3f5e7d) +* 16、[synchronized的内部实现原理](http://yulingtianxia.com/blog/2015/11/01/More-than-you-want-to-know-about-synchronized/) From 1e9174a1cf4c55ea7bf9280d9783250674285850 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 12 Nov 2020 13:02:59 +0800 Subject: [PATCH 085/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 4 ++++ "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 4 +--- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 82be2968..fe0ecc9d 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -18,3 +18,7 @@ * 14、[分析MVC, MVP, MVVM 和 VIPER](https://blog.csdn.net/weixin_40200876/article/details/87635190) * 15、[RAC相关](https://www.jianshu.com/p/cd4031fbf8ff) * 16、[synchronized的内部实现原理](http://yulingtianxia.com/blog/2015/11/01/More-than-you-want-to-know-about-synchronized/) +* 17、[轻量级低风险 iOS 热更新方案](https://mp.weixin.qq.com/s/2re_s3NmOvE9RXlbGQqGDA) +* 18、[iOS大解密:玄之又玄的KVO](https://mp.weixin.qq.com/s/0Yfb-FYorH5GZ3ZB6bMCUQ) +* 19、[iOS AOP框架Aspects实现原理]() +* 20、[FBRetainCycleDetector不能扫描__block变量的问题分析和解决方案](https://developer.aliyun.com/article/66857) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 3605e9af..c6fd25ac 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -143,6 +143,7 @@ * 7、[SYWebViewBridge](https://mp.weixin.qq.com/s/JDCyWg1AYemxbnFbvY5E9w) * 8、[JSPatch-实现原理详解](https://github.com/bang590/JSPatch/wiki/JSPatch-实现原理详解) * 9、[WKWebview秒开实践分享及问题解决方案](https://juejin.im/post/6887161842406260744) +*10、[轻量级低风险 iOS 热更新方案](https://mp.weixin.qq.com/s/2re_s3NmOvE9RXlbGQqGDA) ## 七、Shell脚本 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 5b1cb5e8..7b89cd55 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -30,7 +30,7 @@ * 23、[iOS 图像渲染过程、离屏渲染](https://juejin.im/post/6844904162765832206#heading-18) * 24、[iOS 架构模式--浅析MVC, MVP, MVVM 和 VIPER](https://zhangferry.com/2019/11/22/ios_architecture_patterns/) * 25、[iOS面试备战-多线程](https://juejin.im/post/6854573211011514382) -* 26、[设计模式]() +* 26、[设计模式](https://www.jianshu.com/p/e5c69c7b8c00) * 27、[组件化](https://www.jianshu.com/p/40060fa2a564) * 28、[组件化采坑](https://juejin.im/post/6844903731738345479) * 29、[md5实现原理](https://www.jianshu.com/p/82729c87ef68) @@ -38,8 +38,6 @@ - - ### 网络 * 1、[http1.0->1.1->2.2->3区别](https://www.cnblogs.com/riwang/p/12370785.html) From 2d8a099d2026c7bef4457b3c67f30fe1ce432f89 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 13 Nov 2020 00:57:34 +0800 Subject: [PATCH 086/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 ++ .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 1 + 2 files changed, 3 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index fe0ecc9d..0a50471e 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -22,3 +22,5 @@ * 18、[iOS大解密:玄之又玄的KVO](https://mp.weixin.qq.com/s/0Yfb-FYorH5GZ3ZB6bMCUQ) * 19、[iOS AOP框架Aspects实现原理]() * 20、[FBRetainCycleDetector不能扫描__block变量的问题分析和解决方案](https://developer.aliyun.com/article/66857) +* 21、[iOS 任务调度器:为 CPU 和内存减负](https://www.jianshu.com/p/f2a610c77d26) +* 22、[iOS学习之深入理解程序编译过程](https://juejin.im/post/6844903535050489869) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 7b89cd55..0f2ce472 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -34,6 +34,7 @@ * 27、[组件化](https://www.jianshu.com/p/40060fa2a564) * 28、[组件化采坑](https://juejin.im/post/6844903731738345479) * 29、[md5实现原理](https://www.jianshu.com/p/82729c87ef68) +* 30、[]() From 72fad6ea42935ebfc654c9e3ad188a1ec0a3acd8 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 13 Nov 2020 01:10:08 +0800 Subject: [PATCH 087/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 0f2ce472..28ac5cb0 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -56,3 +56,5 @@ * 4、[爬楼梯]() * 5、[快速排序]() * 6、[整数反转]() +* 7、[链表反转]() +* 8、[链表是否循环]() From 3531da10fca78d343b32015f0ae8a3a4f7a7c55e Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 13 Nov 2020 01:21:01 +0800 Subject: [PATCH 088/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 28ac5cb0..73eb9c34 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -34,7 +34,8 @@ * 27、[组件化](https://www.jianshu.com/p/40060fa2a564) * 28、[组件化采坑](https://juejin.im/post/6844903731738345479) * 29、[md5实现原理](https://www.jianshu.com/p/82729c87ef68) -* 30、[]() +* 30、[NSTimer不准时]() +* 31、[WKWebVie与JS通信的几种方式]() From 537eccc89376a2f37979b8ac2d197b3a4eca1f8c Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sat, 14 Nov 2020 15:49:38 +0800 Subject: [PATCH 089/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\345\267\262\346\265\217\350\247\210.md" | 2 +- .../\351\235\242\350\257\225\351\242\230.md" | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 0a50471e..4052a2df 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -20,7 +20,7 @@ * 16、[synchronized的内部实现原理](http://yulingtianxia.com/blog/2015/11/01/More-than-you-want-to-know-about-synchronized/) * 17、[轻量级低风险 iOS 热更新方案](https://mp.weixin.qq.com/s/2re_s3NmOvE9RXlbGQqGDA) * 18、[iOS大解密:玄之又玄的KVO](https://mp.weixin.qq.com/s/0Yfb-FYorH5GZ3ZB6bMCUQ) -* 19、[iOS AOP框架Aspects实现原理]() +* 19、[iOS AOP框架Aspects实现原理](https://www.jianshu.com/p/2345cc034d6b) * 20、[FBRetainCycleDetector不能扫描__block变量的问题分析和解决方案](https://developer.aliyun.com/article/66857) * 21、[iOS 任务调度器:为 CPU 和内存减负](https://www.jianshu.com/p/f2a610c77d26) * 22、[iOS学习之深入理解程序编译过程](https://juejin.im/post/6844903535050489869) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 73eb9c34..1c00ab87 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -14,7 +14,7 @@ * 7、[Block() * 8、[AutoreleasePool]() * 9、[编译过程](https://juejin.im/post/6844904040841641998) -* 10、[启动过程](https://juejin.im/post/6844904041873408013) +* 10、[启动过程](https://www.jianshu.com/p/7096478ccbe7) * 11、[设计一个线程池](https://www.jianshu.com/p/5bb4123e415c)、[iOS 任务调度器:为 CPU和内存减负](https://www.jianshu.com/p/f2a610c77d26) * 12、[线程怎么保活](https://www.jianshu.com/p/2ffa6678f83d) * 13、[内存满了之后如何处理](https://juejin.im/post/6844903550187733000) @@ -36,8 +36,16 @@ * 29、[md5实现原理](https://www.jianshu.com/p/82729c87ef68) * 30、[NSTimer不准时]() * 31、[WKWebVie与JS通信的几种方式]() - - +* 32、[什么是泛型?Swift的字符串string与OC的NSString差别?对于Swift协议的理解?]() +* 33、[APP启动时长监控]() +* 34、[https相关]() +* 35、[设计一个网络框架]() +* 36、[网络最大并发数]() +* 37、[分类和扩展区别]() +* 38、[load和initializet]() +* 39、[view渲染过程]() +* 40、[layoutSubviews什么时候执行](https://www.jianshu.com/p/a2acc4c7dc4b) +* 41、[iOS-UIView异步绘制](https://www.jianshu.com/p/1c1b3f7cf087) ### 网络 From ec55a2f83a56e2e7a51ed14d7ebbf86b52f6677d Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sun, 15 Nov 2020 01:00:42 +0800 Subject: [PATCH 090/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 ++ .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 4052a2df..3ae626db 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -24,3 +24,5 @@ * 20、[FBRetainCycleDetector不能扫描__block变量的问题分析和解决方案](https://developer.aliyun.com/article/66857) * 21、[iOS 任务调度器:为 CPU 和内存减负](https://www.jianshu.com/p/f2a610c77d26) * 22、[iOS学习之深入理解程序编译过程](https://juejin.im/post/6844903535050489869) +* 23、[计算机那些事(8)——图形图像渲染原理](http://chuquan.me/2018/08/26/graphics-rending-principle-gpu/) +* 24、[iOS 图像渲染过程解析iOS 图像渲染过程解析](https://www.jianshu.com/p/6b9a5f16644b) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 1c00ab87..fc4d238a 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -43,9 +43,11 @@ * 36、[网络最大并发数]() * 37、[分类和扩展区别]() * 38、[load和initializet]() -* 39、[view渲染过程]() +* 39、[UIView的绘制过程](https://www.jianshu.com/p/a81d48e0e44a) * 40、[layoutSubviews什么时候执行](https://www.jianshu.com/p/a2acc4c7dc4b) * 41、[iOS-UIView异步绘制](https://www.jianshu.com/p/1c1b3f7cf087) +* 42、[静态库和动态库的区别?怎么判断一个库是动态库还是静态库]() +* 43、[AutoLayout的原理]() ### 网络 From c53314fbb28e22d3a5494fada1033a9a92e6425d Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sun, 15 Nov 2020 01:01:04 +0800 Subject: [PATCH 091/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 3ae626db..c5b0b812 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -25,4 +25,4 @@ * 21、[iOS 任务调度器:为 CPU 和内存减负](https://www.jianshu.com/p/f2a610c77d26) * 22、[iOS学习之深入理解程序编译过程](https://juejin.im/post/6844903535050489869) * 23、[计算机那些事(8)——图形图像渲染原理](http://chuquan.me/2018/08/26/graphics-rending-principle-gpu/) -* 24、[iOS 图像渲染过程解析iOS 图像渲染过程解析](https://www.jianshu.com/p/6b9a5f16644b) +* 24、[iOS 图像渲染过程解析](https://www.jianshu.com/p/6b9a5f16644b) From 24b7f2020ea20853b800f976e6a2decf4d2c54d9 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sun, 15 Nov 2020 01:06:54 +0800 Subject: [PATCH 092/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index fc4d238a..5c8cafd0 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -34,7 +34,7 @@ * 27、[组件化](https://www.jianshu.com/p/40060fa2a564) * 28、[组件化采坑](https://juejin.im/post/6844903731738345479) * 29、[md5实现原理](https://www.jianshu.com/p/82729c87ef68) -* 30、[NSTimer不准时]() +* 30、[NSTimer不准时](https://www.jianshu.com/p/d5845842b7d3) * 31、[WKWebVie与JS通信的几种方式]() * 32、[什么是泛型?Swift的字符串string与OC的NSString差别?对于Swift协议的理解?]() * 33、[APP启动时长监控]() From da23a376fe64cac3b98a536e19ab394e78d5d02b Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sun, 15 Nov 2020 23:08:18 +0800 Subject: [PATCH 093/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\345\267\262\346\265\217\350\247\210.md" | 1 + .../\351\235\242\350\257\225\351\242\230.md" | 11 +++++++---- iOS_Tips/Podfile | 1 + 3 files changed, 9 insertions(+), 4 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index c5b0b812..f0a5917d 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -26,3 +26,4 @@ * 22、[iOS学习之深入理解程序编译过程](https://juejin.im/post/6844903535050489869) * 23、[计算机那些事(8)——图形图像渲染原理](http://chuquan.me/2018/08/26/graphics-rending-principle-gpu/) * 24、[iOS 图像渲染过程解析](https://www.jianshu.com/p/6b9a5f16644b) +* 25、[iOS面试题-Swift篇](https://blog.csdn.net/olsQ93038o99S/article/details/107031322?utm_medium=distribute.pc_relevant.none-task-blog-title-6&spm=1001.2101.3001.4242) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 5c8cafd0..df46e301 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -41,13 +41,14 @@ * 34、[https相关]() * 35、[设计一个网络框架]() * 36、[网络最大并发数]() -* 37、[分类和扩展区别]() -* 38、[load和initializet]() +* 37、[分类和扩展区别](https://www.jianshu.com/p/ba35a975af9a) +* 38、[load和initializet](https://www.jianshu.com/p/c52d0b6ee5e9) * 39、[UIView的绘制过程](https://www.jianshu.com/p/a81d48e0e44a) * 40、[layoutSubviews什么时候执行](https://www.jianshu.com/p/a2acc4c7dc4b) * 41、[iOS-UIView异步绘制](https://www.jianshu.com/p/1c1b3f7cf087) -* 42、[静态库和动态库的区别?怎么判断一个库是动态库还是静态库]() -* 43、[AutoLayout的原理]() +* 42、[静态库和动态库的区别?怎么判断一个库是动态库还是静态库](https://www.jianshu.com/p/5069778e421a) +* 43、[AutoLayout的原理](https://www.jianshu.com/p/c6541ff0bdafv) +* 44、[iOS的Category添加 weak 属性](https://blog.csdn.net/devday/article/details/71130115) ### 网络 @@ -57,6 +58,8 @@ * 3、[聊聊DNS劫持](https://www.jianshu.com/p/63a94cb46cd2) * 4、[如何保障客户端与服务器交互中的数据安全](https://netsecurity.51cto.com/art/202002/610473.htm) * 5、[iOS面试备战-网络篇](https://juejin.im/post/6844904202523639822#comment) +* 5、[在浏览器输入url后发生了什么](https://www.jianshu.com/p/7eea6fbc5fcd) +* 6、[TCP三次握手、四次挥手、https加密原理]() ### 算法 diff --git a/iOS_Tips/Podfile b/iOS_Tips/Podfile index 8d5c5100..75bcda8a 100644 --- a/iOS_Tips/Podfile +++ b/iOS_Tips/Podfile @@ -2,6 +2,7 @@ source 'https://github.com/CocoaPods/Specs.git' #source 'https://gitee.com/mirrors/CocoaPods-Specs.git' platform :ios,’10.0’ target "DarkMode" do + pod 'GPUImage' #pod 'MLeaksFinder' pod 'MBProgressHUD' From 9f2a1a2a6d8d5727a16ce6f1bb9e32ad96c8da12 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sun, 15 Nov 2020 23:46:56 +0800 Subject: [PATCH 094/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 2 +- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index c6fd25ac..b74ef9f1 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -27,7 +27,7 @@ * 1.6、网络优化 -> +> 合并多个请求、304缓存 * 1.7、健壮性/稳定性 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index df46e301..498474b7 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -58,8 +58,9 @@ * 3、[聊聊DNS劫持](https://www.jianshu.com/p/63a94cb46cd2) * 4、[如何保障客户端与服务器交互中的数据安全](https://netsecurity.51cto.com/art/202002/610473.htm) * 5、[iOS面试备战-网络篇](https://juejin.im/post/6844904202523639822#comment) -* 5、[在浏览器输入url后发生了什么](https://www.jianshu.com/p/7eea6fbc5fcd) -* 6、[TCP三次握手、四次挥手、https加密原理]() +* 6、[在浏览器输入url后发生了什么](https://www.jianshu.com/p/7eea6fbc5fcd) +* 7、[TCP三次握手、四次挥手、https加密原理]() +* 8、[为什么TCP4次挥手时等待为2MSL?](https://www.zhihu.com/question/67013338) ### 算法 From 1bbaa2689261b32d728f5e867721a9e75587228b Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 16 Nov 2020 23:54:35 +0800 Subject: [PATCH 095/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\351\235\242\350\257\225\351\242\230.md" | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 498474b7..d689435f 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -73,3 +73,13 @@ * 6、[整数反转]() * 7、[链表反转]() * 8、[链表是否循环]() +* 9、[两个有序数组合并]() +* 10、[删除链表的倒数第N个节点](https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/) +* 11、[一个纯数字的字符串,调整顺序使之奇偶排列 “17485” ———>”14785 “]() +* 12、[实现一个LRU算法 不使用数组]() +* 13、[两个view的第一个公共父视图]() +* 14、[两个有序数组的中位数](https://leetcode-cn.com/problems/median-of-two-sorted-arrays/) +* 15、[字符串的全排列](https://leetcode-cn.com/problems/zi-fu-chuan-de-pai-lie-lcof//) +* 16、[二叉树的层级打印 计算层高](https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/) +* 17、[用字符串实现大数加法]() +* 18、[二叉树 红黑树 二叉树的应用,以及数据库的数据结构以及优化]() From d67774c4f76a56d54e6417cf362f73d1339efe79 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 17 Nov 2020 00:12:17 +0800 Subject: [PATCH 096/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index d689435f..4ddc6df2 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -49,7 +49,8 @@ * 42、[静态库和动态库的区别?怎么判断一个库是动态库还是静态库](https://www.jianshu.com/p/5069778e421a) * 43、[AutoLayout的原理](https://www.jianshu.com/p/c6541ff0bdafv) * 44、[iOS的Category添加 weak 属性](https://blog.csdn.net/devday/article/details/71130115) - +* 45、[runloop]() +* 46、[runtime]() ### 网络 @@ -61,7 +62,7 @@ * 6、[在浏览器输入url后发生了什么](https://www.jianshu.com/p/7eea6fbc5fcd) * 7、[TCP三次握手、四次挥手、https加密原理]() * 8、[为什么TCP4次挥手时等待为2MSL?](https://www.zhihu.com/question/67013338) - +* 9、[DNS的搜索过程]() ### 算法 @@ -83,3 +84,4 @@ * 16、[二叉树的层级打印 计算层高](https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/) * 17、[用字符串实现大数加法]() * 18、[二叉树 红黑树 二叉树的应用,以及数据库的数据结构以及优化]() +* 19、[找出无序数组中所有3个数字加起来是0 的数字(先排序,再双指针)]() From 24370e20cccd5d869ef4247d4ccfece115441113 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 17 Nov 2020 15:06:05 +0800 Subject: [PATCH 097/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 4ddc6df2..7588af6e 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -49,8 +49,8 @@ * 42、[静态库和动态库的区别?怎么判断一个库是动态库还是静态库](https://www.jianshu.com/p/5069778e421a) * 43、[AutoLayout的原理](https://www.jianshu.com/p/c6541ff0bdafv) * 44、[iOS的Category添加 weak 属性](https://blog.csdn.net/devday/article/details/71130115) -* 45、[runloop]() -* 46、[runtime]() +* 45、[runloop](https://www.jianshu.com/p/fcb271f69038) +* 46、[runtime](https://www.jianshu.com/p/6ebda3cd8052) ### 网络 From 8ec974950bba855d1228876f0d8883ca1df84393 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 19 Nov 2020 12:47:49 +0800 Subject: [PATCH 098/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 ++ "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 4 ++-- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 1 + ...07\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index f0a5917d..f6441a45 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -27,3 +27,5 @@ * 23、[计算机那些事(8)——图形图像渲染原理](http://chuquan.me/2018/08/26/graphics-rending-principle-gpu/) * 24、[iOS 图像渲染过程解析](https://www.jianshu.com/p/6b9a5f16644b) * 25、[iOS面试题-Swift篇](https://blog.csdn.net/olsQ93038o99S/article/details/107031322?utm_medium=distribute.pc_relevant.none-task-blog-title-6&spm=1001.2101.3001.4242) +* 26、[解决「HTTPDNS + HTTPS」的证书校验问题](https://kangzubin.com/httpdns-https/) +* 27、[从SIL看Swift函数派发机制](https://mp.weixin.qq.com/s/KvwFyc1X_anTt-DTw86u7Q) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index b74ef9f1..b27751c9 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -81,8 +81,8 @@ > [iOS 网络优化: 使你的 App 网络交互更流畅](https://mp.weixin.qq.com/s/YLvpYBwaz8L6fnmzL78Mfg) > [GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) > [卡顿率降低50%!京东商城APP卡顿监控及优化实践](https://mp.weixin.qq.com/s/aJeAUAjcKOMvznDMGj2UUA) -> [【性能优化】今日头条iOS客户端启动速度优化](https://www.jianshu.com/p/7096478ccbe7) - +> [【性能优化】今日头条iOS客户端启动速度优化](https://www.jianshu.com/p/7096478ccbe7) +> [iOS 崩溃排查入门:总览](https://ai-chan.top/2020/10/02/iOS-crash/) ## 二、数据结构与算法 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 7588af6e..c264b303 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -51,6 +51,7 @@ * 44、[iOS的Category添加 weak 属性](https://blog.csdn.net/devday/article/details/71130115) * 45、[runloop](https://www.jianshu.com/p/fcb271f69038) * 46、[runtime](https://www.jianshu.com/p/6ebda3cd8052) +* 47、[WKWebView 那些坑](https://zhuanlan.zhihu.com/p/24990222) ### 网络 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index 48802b3b..f14c1e95 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -73,6 +73,7 @@ * 71、[GoldHouse-for-iOS](https://github.com/BiBoyang/GoldHouse-for-iOS) * 72、[折腾范儿の味精](http://awhisper.github.io) * 73、[zhangferry](https://juejin.im/user/2242659450368119) +* 74、[酷酷的哀殿](https://ai-chan.top/) ## 高质量微信公众号 From 47033e5095f88c5d876c4952eb055015cb83b10a Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 19 Nov 2020 12:55:38 +0800 Subject: [PATCH 099/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index c264b303..c71fd195 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -49,9 +49,11 @@ * 42、[静态库和动态库的区别?怎么判断一个库是动态库还是静态库](https://www.jianshu.com/p/5069778e421a) * 43、[AutoLayout的原理](https://www.jianshu.com/p/c6541ff0bdafv) * 44、[iOS的Category添加 weak 属性](https://blog.csdn.net/devday/article/details/71130115) -* 45、[runloop](https://www.jianshu.com/p/fcb271f69038) -* 46、[runtime](https://www.jianshu.com/p/6ebda3cd8052) +* 45、[Runloop](https://www.jianshu.com/p/fcb271f69038) +* 46、[Runtime](https://www.jianshu.com/p/6ebda3cd8052) * 47、[WKWebView 那些坑](https://zhuanlan.zhihu.com/p/24990222) +* 48、[NSString为用Copy和Strong有什么区别]() +* 49、[isKindOf和isMemberOf的区别,底层实现]() ### 网络 From 757ea4a5d8f0d7285ebf4d0aaf14c05c523f2891 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 19 Nov 2020 14:06:09 +0800 Subject: [PATCH 100/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index c71fd195..9a6d9778 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -53,7 +53,8 @@ * 46、[Runtime](https://www.jianshu.com/p/6ebda3cd8052) * 47、[WKWebView 那些坑](https://zhuanlan.zhihu.com/p/24990222) * 48、[NSString为用Copy和Strong有什么区别]() -* 49、[isKindOf和isMemberOf的区别,底层实现]() +* 49、[isKindOf和isMemberOf的区别,底层实现](https://www.jianshu.com/p/abad3809c7c1) +* 50、[多线程-现有10个上传任务,最大并发数是3,每完成一个任务要告诉用户此时剩余的任务数]() ### 网络 From 34f8a6d2615f1dfca8f1a471ba2362d5552d0c02 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 20 Nov 2020 15:04:51 +0800 Subject: [PATCH 101/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 9a6d9778..7013fb9e 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -89,3 +89,4 @@ * 17、[用字符串实现大数加法]() * 18、[二叉树 红黑树 二叉树的应用,以及数据库的数据结构以及优化]() * 19、[找出无序数组中所有3个数字加起来是0 的数字(先排序,再双指针)]() +* 20、[最长回文子串]() From df48464446a3204e538ce9324c3c353e10397e5d Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sun, 22 Nov 2020 22:49:32 +0800 Subject: [PATCH 102/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\345\267\262\346\265\217\350\247\210.md" | 1 + .../\351\235\242\350\257\225\351\242\230.md" | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index f6441a45..e944a2cd 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -29,3 +29,4 @@ * 25、[iOS面试题-Swift篇](https://blog.csdn.net/olsQ93038o99S/article/details/107031322?utm_medium=distribute.pc_relevant.none-task-blog-title-6&spm=1001.2101.3001.4242) * 26、[解决「HTTPDNS + HTTPS」的证书校验问题](https://kangzubin.com/httpdns-https/) * 27、[从SIL看Swift函数派发机制](https://mp.weixin.qq.com/s/KvwFyc1X_anTt-DTw86u7Q) +* 28、[iOS 锁的简单实现与总结](https://www.jianshu.com/p/a33959324cc7?from=singlemessage) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 7013fb9e..bf9c75d0 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -10,9 +10,9 @@ * 3、[iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+](https://mp.weixin.qq.com/s/4-4M9E8NziAgshlwB7Sc6g) * 4、[GCD](https://looseyi.github.io/post/notes/01-gcd/) * 5、[runloop](https://blog.ibireme.com/2015/05/18/runloop/) -* 6、[Weak的实现原理]() -* 7、[Block() -* 8、[AutoreleasePool]() +* 6、[Weak的实现原理](https://www.jianshu.com/p/f331bd5ce8f8) +* 7、[Block](https://www.jianshu.com/p/93813c293266) +* 8、[AutoreleasePool](https://www.jianshu.com/p/8a396da9dd48) * 9、[编译过程](https://juejin.im/post/6844904040841641998) * 10、[启动过程](https://www.jianshu.com/p/7096478ccbe7) * 11、[设计一个线程池](https://www.jianshu.com/p/5bb4123e415c)、[iOS 任务调度器:为 CPU和内存减负](https://www.jianshu.com/p/f2a610c77d26) @@ -55,6 +55,11 @@ * 48、[NSString为用Copy和Strong有什么区别]() * 49、[isKindOf和isMemberOf的区别,底层实现](https://www.jianshu.com/p/abad3809c7c1) * 50、[多线程-现有10个上传任务,最大并发数是3,每完成一个任务要告诉用户此时剩余的任务数]() +* 51、[自己实现isEqual方法(hash算法](https://www.jianshu.com/p/915356e280fc) +* 52、[透彻理解block中weakSelf和strongSelf](https://www.jianshu.com/p/ae4f84e289b9) +* 53、[ios实现读写锁](https://blog.csdn.net/u014600626/article/details/102884794) +* 54、[UIView Animation的Block谁持有](http://saitjr.com/ios/ios-from-memory-leak-to-uiview-animation.html) + ### 网络 @@ -90,3 +95,4 @@ * 18、[二叉树 红黑树 二叉树的应用,以及数据库的数据结构以及优化]() * 19、[找出无序数组中所有3个数字加起来是0 的数字(先排序,再双指针)]() * 20、[最长回文子串]() +* 21、[找出无序数组中所有3个数字加起来是0 的数字]() From 3b72c4cbfbc28568ebbe8da46e613cca062a000c Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 23 Nov 2020 15:17:06 +0800 Subject: [PATCH 103/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\345\267\262\346\265\217\350\247\210.md" | 1 + .../\351\235\242\350\257\225\351\242\230.md" | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index e944a2cd..d099512f 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -30,3 +30,4 @@ * 26、[解决「HTTPDNS + HTTPS」的证书校验问题](https://kangzubin.com/httpdns-https/) * 27、[从SIL看Swift函数派发机制](https://mp.weixin.qq.com/s/KvwFyc1X_anTt-DTw86u7Q) * 28、[iOS 锁的简单实现与总结](https://www.jianshu.com/p/a33959324cc7?from=singlemessage) +* 29、[引用计数带来的一次讨论](https://www.jianshu.com/p/e3690f3e4675) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index bf9c75d0..84345a24 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -12,7 +12,7 @@ * 5、[runloop](https://blog.ibireme.com/2015/05/18/runloop/) * 6、[Weak的实现原理](https://www.jianshu.com/p/f331bd5ce8f8) * 7、[Block](https://www.jianshu.com/p/93813c293266) -* 8、[AutoreleasePool](https://www.jianshu.com/p/8a396da9dd48) +* 8、[AutoreleasePool](https://www.jianshu.com/p/32265cbb2a26) * 9、[编译过程](https://juejin.im/post/6844904040841641998) * 10、[启动过程](https://www.jianshu.com/p/7096478ccbe7) * 11、[设计一个线程池](https://www.jianshu.com/p/5bb4123e415c)、[iOS 任务调度器:为 CPU和内存减负](https://www.jianshu.com/p/f2a610c77d26) @@ -59,6 +59,14 @@ * 52、[透彻理解block中weakSelf和strongSelf](https://www.jianshu.com/p/ae4f84e289b9) * 53、[ios实现读写锁](https://blog.csdn.net/u014600626/article/details/102884794) * 54、[UIView Animation的Block谁持有](http://saitjr.com/ios/ios-from-memory-leak-to-uiview-animation.html) +* 55、[watchdog 机制](https://juejin.cn/post/6844903683021340679) +* 56、[什么是依赖注入?](https://www.jianshu.com/p/0d72a945f2dd) +* 57、[ARC的原理,引用计数是怎么管理的,weak 关键字的原理](https://www.jianshu.com/p/e3690f3e4675) +* 58、[autoReleasePool的原理 autoReleasePool 的哨兵、自己创建的 @autoReleasePool是怎样运行的,什么对象是autoRelease的](https://www.jianshu.com/p/77eb9e0bcd70) +* 59、[RunLoop与AutoReleasepool的关系学习](https://www.jianshu.com/p/ae8a310457d7) +* 60、[子线程默认不会开启 Runloop,那出现 Autorelease 对象如何处理?不手动处 理会内存泄漏吗?](https://zhuanlan.zhihu.com/p/26796146) +* 61、[Atomic为什么不安全,怎么实现一个安全的存取](https://www.jianshu.com/p/f7411c90a68a)、[iOS中如何设计多线程的读写安全](https://tech.souyunku.com/?p=31631) +* 62、[什么是@synchronized](https://blog.csdn.net/qq_28551705/article/details/86094764) ### 网络 From 8f742a238ac4a8d434137c770e65d73e2aa9e3f0 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 23 Nov 2020 23:00:17 +0800 Subject: [PATCH 104/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index d099512f..81facc4e 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -31,3 +31,4 @@ * 27、[从SIL看Swift函数派发机制](https://mp.weixin.qq.com/s/KvwFyc1X_anTt-DTw86u7Q) * 28、[iOS 锁的简单实现与总结](https://www.jianshu.com/p/a33959324cc7?from=singlemessage) * 29、[引用计数带来的一次讨论](https://www.jianshu.com/p/e3690f3e4675) +* 30、[小程序「同层渲染」那些事(keng)?](https://juejin.cn/post/6881502813105422349) From 6fdad80b14b4339c80413760bbeeb538701c0fc5 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 23 Nov 2020 23:02:49 +0800 Subject: [PATCH 105/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 84345a24..e6242e86 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -80,6 +80,8 @@ * 7、[TCP三次握手、四次挥手、https加密原理]() * 8、[为什么TCP4次挥手时等待为2MSL?](https://www.zhihu.com/question/67013338) * 9、[DNS的搜索过程]() +* 10、[tcp,为什么4次断开,tcp的拥塞机制,为什么这么设计]() +* 11、[TCP/UDP]() ### 算法 From 87ee46658d47c22291ebf0bd72ae2d843f9c8572 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 23 Nov 2020 23:39:09 +0800 Subject: [PATCH 106/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index e6242e86..1fdb7236 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -24,7 +24,7 @@ * 17、[C++虚函数我们一般哪里有用到啊,还有它开销了什么东西?为啥减少使用能优化启动速度?](https://www.dazhuanlan.com/2019/12/09/5dedcdb02c287/) * 18、[内存缓存优化](https://www.jianshu.com/p/f7376a321c2e) * 19、[autoreleasepool什么时候释放](https://www.jianshu.com/p/50bdd8438857) -* 20、[响应链机制]() +* 20、[响应链机制](https://www.jianshu.com/p/2e074db792ba) * 21、[instrment的Time profilter实现原理原理]() * 22、[多线程之栅栏函数](https://zhuanlan.zhihu.com/p/142368783) * 23、[iOS 图像渲染过程、离屏渲染](https://juejin.im/post/6844904162765832206#heading-18) From 552eba24c520d80a8e68cf438ec960511e04bb80 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 24 Nov 2020 10:02:27 +0800 Subject: [PATCH 107/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 3 +++ "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 2 files changed, 4 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 81facc4e..0f808633 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -32,3 +32,6 @@ * 28、[iOS 锁的简单实现与总结](https://www.jianshu.com/p/a33959324cc7?from=singlemessage) * 29、[引用计数带来的一次讨论](https://www.jianshu.com/p/e3690f3e4675) * 30、[小程序「同层渲染」那些事(keng)?](https://juejin.cn/post/6881502813105422349) +* 31、[深入理解JavaScriptCore](https://mp.weixin.qq.com/s/H5wBNAm93uPJDvCQCg0_cg9) +* 32、[iOS WKWebView 同步返回值给 JS](https://mp.weixin.qq.com/s/kKdNG40qbMHigwZIsJRyQQ) +* 33、[Hybrid 实战:如何完整下载一个 wap 页面](https://mp.weixin.qq.com/s/rR4lT0iPSStoHk2Kar8i9A) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index b27751c9..62576ee2 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -178,6 +178,7 @@ * 6、[JSPatch]() * 7、[Fishook]() * 8、[Aspect]() +* 9、[YYCache 源码解析(一):使用方法,架构与内存缓存的设计](https://mp.weixin.qq.com/s/tTAKHNiCVJ64738VIA__ZA) ## 其它 From af5a77f5a3d7877d2b734acbc389cfc81a008da4 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 24 Nov 2020 21:14:05 +0800 Subject: [PATCH 108/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 1 + .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 ++ ...\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 1 + 3 files changed, 4 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 0f808633..650a6b14 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -35,3 +35,4 @@ * 31、[深入理解JavaScriptCore](https://mp.weixin.qq.com/s/H5wBNAm93uPJDvCQCg0_cg9) * 32、[iOS WKWebView 同步返回值给 JS](https://mp.weixin.qq.com/s/kKdNG40qbMHigwZIsJRyQQ) * 33、[Hybrid 实战:如何完整下载一个 wap 页面](https://mp.weixin.qq.com/s/rR4lT0iPSStoHk2Kar8i9A) +* 34、[UIView 动画降帧探究](https://mp.weixin.qq.com/s/EcVrrT1M4mI4f4d2b3qV0Q) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 1fdb7236..aac1cc7d 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -67,6 +67,8 @@ * 60、[子线程默认不会开启 Runloop,那出现 Autorelease 对象如何处理?不手动处 理会内存泄漏吗?](https://zhuanlan.zhihu.com/p/26796146) * 61、[Atomic为什么不安全,怎么实现一个安全的存取](https://www.jianshu.com/p/f7411c90a68a)、[iOS中如何设计多线程的读写安全](https://tech.souyunku.com/?p=31631) * 62、[什么是@synchronized](https://blog.csdn.net/qq_28551705/article/details/86094764) +* 63、[线程和进程的区别](https://www.jianshu.com/p/68b274548069) +* 64、[对于大图片加载引起的oom问题,怎么处理]() ### 网络 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index f14c1e95..39dcb0e5 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -74,6 +74,7 @@ * 72、[折腾范儿の味精](http://awhisper.github.io) * 73、[zhangferry](https://juejin.im/user/2242659450368119) * 74、[酷酷的哀殿](https://ai-chan.top/) +* 75、[陈满iOS](https://juejin.cn/user/3245414055161870) ## 高质量微信公众号 From c8e646c73c8bc801a17f8668a702ab640b8f8ccf Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 25 Nov 2020 09:56:34 +0800 Subject: [PATCH 109/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index aac1cc7d..ab1db6ba 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -38,7 +38,7 @@ * 31、[WKWebVie与JS通信的几种方式]() * 32、[什么是泛型?Swift的字符串string与OC的NSString差别?对于Swift协议的理解?]() * 33、[APP启动时长监控]() -* 34、[https相关]() +* 34、[https相关](https://mp.weixin.qq.com/s/LV3cFpQtMUntMg6zn-01pQ) * 35、[设计一个网络框架]() * 36、[网络最大并发数]() * 37、[分类和扩展区别](https://www.jianshu.com/p/ba35a975af9a) @@ -84,6 +84,7 @@ * 9、[DNS的搜索过程]() * 10、[tcp,为什么4次断开,tcp的拥塞机制,为什么这么设计]() * 11、[TCP/UDP]() +* 12、[图解 | 什么是HTTP简史](https://mp.weixin.qq.com/s/LV3cFpQtMUntMg6zn-01pQ) ### 算法 From 71b2839c1671090895b8dc6105c6c525d702bed8 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 25 Nov 2020 18:04:29 +0800 Subject: [PATCH 110/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index ab1db6ba..f56652d7 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -85,6 +85,7 @@ * 10、[tcp,为什么4次断开,tcp的拥塞机制,为什么这么设计]() * 11、[TCP/UDP]() * 12、[图解 | 什么是HTTP简史](https://mp.weixin.qq.com/s/LV3cFpQtMUntMg6zn-01pQ) +* 13、[Charles抓包原理]() ### 算法 From c6649207a6e247612a67d72a18fa49d755e0adf0 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 25 Nov 2020 19:58:10 +0800 Subject: [PATCH 111/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 1 + .../DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 1 + 2 files changed, 2 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 650a6b14..076f87c3 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -36,3 +36,4 @@ * 32、[iOS WKWebView 同步返回值给 JS](https://mp.weixin.qq.com/s/kKdNG40qbMHigwZIsJRyQQ) * 33、[Hybrid 实战:如何完整下载一个 wap 页面](https://mp.weixin.qq.com/s/rR4lT0iPSStoHk2Kar8i9A) * 34、[UIView 动画降帧探究](https://mp.weixin.qq.com/s/EcVrrT1M4mI4f4d2b3qV0Q) +* 35、[iOS AOP 方案的对比与思考](https://juejin.cn/post/6898192050512986126) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index f56652d7..fc0f21c7 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -69,6 +69,7 @@ * 62、[什么是@synchronized](https://blog.csdn.net/qq_28551705/article/details/86094764) * 63、[线程和进程的区别](https://www.jianshu.com/p/68b274548069) * 64、[对于大图片加载引起的oom问题,怎么处理]() +* 65、[Crash函数信息符号化]() ### 网络 From ab43d8dbc7468b3fc15729c65cfe83afc11472e5 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 25 Nov 2020 20:38:56 +0800 Subject: [PATCH 112/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index fc0f21c7..6dc18e27 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -70,6 +70,7 @@ * 63、[线程和进程的区别](https://www.jianshu.com/p/68b274548069) * 64、[对于大图片加载引起的oom问题,怎么处理]() * 65、[Crash函数信息符号化]() +* 66、[IPA包签名原理]() ### 网络 From f8af7e084cabdabcbf0f4cc2b12e13f528c5e7a4 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 25 Nov 2020 23:53:08 +0800 Subject: [PATCH 113/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 3 +++ .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 6 ++++++ 2 files changed, 9 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 076f87c3..6da6cbc7 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -37,3 +37,6 @@ * 33、[Hybrid 实战:如何完整下载一个 wap 页面](https://mp.weixin.qq.com/s/rR4lT0iPSStoHk2Kar8i9A) * 34、[UIView 动画降帧探究](https://mp.weixin.qq.com/s/EcVrrT1M4mI4f4d2b3qV0Q) * 35、[iOS AOP 方案的对比与思考](https://juejin.cn/post/6898192050512986126) +* 36、[如何对 iOS 启动阶段耗时进行分析](https://www.jianshu.com/p/c0c4f19d317f) +* 37、[UIView 的渲染过程](https://www.jianshu.com/p/365cf516dbcb) +* 38、[IOS UIView开始深入 绘制像素到屏幕上](https://www.cnblogs.com/alunchen/p/5614355.html) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 6dc18e27..f77113e8 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -71,6 +71,12 @@ * 64、[对于大图片加载引起的oom问题,怎么处理]() * 65、[Crash函数信息符号化]() * 66、[IPA包签名原理]() +* 67、[load的详细过程]() +* 68、[卡顿监测原理]() +* 69、[组件化过程中的坑]() +* 70、[Mach-O文件]() +* 71、[深入理解Tagged Pointer](https://www.jianshu.com/p/c9089494fb6c) +* 72、[iOS 的渲染机制以及 UIView 的自动布局流程](https://www.dazhuanlan.com/2020/01/31/5e33cdfb28a2a/) ### 网络 From 4872b79c73c6a41df6650ff6b90b781222862cc0 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 26 Nov 2020 00:17:18 +0800 Subject: [PATCH 114/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index f77113e8..f41f8b46 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -77,6 +77,7 @@ * 70、[Mach-O文件]() * 71、[深入理解Tagged Pointer](https://www.jianshu.com/p/c9089494fb6c) * 72、[iOS 的渲染机制以及 UIView 的自动布局流程](https://www.dazhuanlan.com/2020/01/31/5e33cdfb28a2a/) +* 73、[MD5、AES、RSA等加密原理]() ### 网络 From ead1905e6a0714b10fc2ddcd32d78d511656bfd9 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 26 Nov 2020 13:59:22 +0800 Subject: [PATCH 115/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.h | 2 +- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 3 +++ .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.h b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.h index d34e3c57..335530cc 100644 --- a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.h +++ b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.h @@ -8,7 +8,7 @@ #import -///监测+load方法耗时 引自: https://www.jianshu.com/p/c14987eee107 +///监测+load方法耗时 引自: https://www.jianshu.com/p/c14987eee107、https://www.cnblogs.com/feng9exe/p/12487662.html @interface SLAPMLoadTime : NSObject @end diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 6da6cbc7..ac3e6053 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -40,3 +40,6 @@ * 36、[如何对 iOS 启动阶段耗时进行分析](https://www.jianshu.com/p/c0c4f19d317f) * 37、[UIView 的渲染过程](https://www.jianshu.com/p/365cf516dbcb) * 38、[IOS UIView开始深入 绘制像素到屏幕上](https://www.cnblogs.com/alunchen/p/5614355.html) +* 39、[iOS深思篇 | 启动时间的度量和优化](https://www.cnblogs.com/feng9exe/p/12487662.html) +* 40、[Hook load方法耗时](https://github.com/tripleCC/Laboratory/tree/master/HookLoadMethods) +* 41、[__attribute__ 机制使用](https://www.jianshu.com/p/e2dfccc32c80) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index f41f8b46..577870d5 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -78,6 +78,8 @@ * 71、[深入理解Tagged Pointer](https://www.jianshu.com/p/c9089494fb6c) * 72、[iOS 的渲染机制以及 UIView 的自动布局流程](https://www.dazhuanlan.com/2020/01/31/5e33cdfb28a2a/) * 73、[MD5、AES、RSA等加密原理]() +* 74、[pod install和pod update的区别]() +* 75、[跨平台框架原理]() ### 网络 From a245ceaf8e5283297fed6bc23ede403ec4cd91a2 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 26 Nov 2020 16:52:44 +0800 Subject: [PATCH 116/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 6 ++++++ .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index ac3e6053..eda45c12 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -43,3 +43,9 @@ * 39、[iOS深思篇 | 启动时间的度量和优化](https://www.cnblogs.com/feng9exe/p/12487662.html) * 40、[Hook load方法耗时](https://github.com/tripleCC/Laboratory/tree/master/HookLoadMethods) * 41、[__attribute__ 机制使用](https://www.jianshu.com/p/e2dfccc32c80) +* 42、[iOS中 性能优化之浅谈load与initialize](https://blog.csdn.net/Lea__DongYang/article/details/79702537) +* 43、[#iOS性能优化](https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzI2NTAxMzg2MA==&scene=1&album_id=1569172435344637952&count=3#wechat_redirect) +* 44、[监控所有的OC方法耗时](https://juejin.cn/post/6844903875804135431) +* 45、[深入剖析iOS动态链接库](https://www.jianshu.com/p/1de663f64c05) +* 46、[【IOS开发高级系列】dyld专题](https://www.jianshu.com/p/5f337da8fbef) + diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 577870d5..840fa9ea 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -71,7 +71,7 @@ * 64、[对于大图片加载引起的oom问题,怎么处理]() * 65、[Crash函数信息符号化]() * 66、[IPA包签名原理]() -* 67、[load的详细过程]() +* 67、[load的详细过程](https://blog.csdn.net/Lea__DongYang/article/details/79702537) * 68、[卡顿监测原理]() * 69、[组件化过程中的坑]() * 70、[Mach-O文件]() From 3fd60cecd82e736b371d47f7895e8fd1ca086b01 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 26 Nov 2020 23:31:43 +0800 Subject: [PATCH 117/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 3 ++- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index eda45c12..acf8fc5a 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -48,4 +48,5 @@ * 44、[监控所有的OC方法耗时](https://juejin.cn/post/6844903875804135431) * 45、[深入剖析iOS动态链接库](https://www.jianshu.com/p/1de663f64c05) * 46、[【IOS开发高级系列】dyld专题](https://www.jianshu.com/p/5f337da8fbef) - +* 47、[iOS图片加载速度极限优化—FastImageCache解析](https://note.youdao.com/ynoteshare1/index.html?id=c66e46ed804849833a3189952afcf2c0&type=note) +* 48、[深入iOS系统底层之程序映像](https://www.jianshu.com/p/3b83193ff851) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 840fa9ea..a61e3b50 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -68,17 +68,17 @@ * 61、[Atomic为什么不安全,怎么实现一个安全的存取](https://www.jianshu.com/p/f7411c90a68a)、[iOS中如何设计多线程的读写安全](https://tech.souyunku.com/?p=31631) * 62、[什么是@synchronized](https://blog.csdn.net/qq_28551705/article/details/86094764) * 63、[线程和进程的区别](https://www.jianshu.com/p/68b274548069) -* 64、[对于大图片加载引起的oom问题,怎么处理]() -* 65、[Crash函数信息符号化]() +* 64、[对于大图片加载引起的oom问题,怎么处理](https://www.jianshu.com/p/52e3535dd37c) +* 65、[Crash堆栈和符号的对应解析符号化]() * 66、[IPA包签名原理]() * 67、[load的详细过程](https://blog.csdn.net/Lea__DongYang/article/details/79702537) * 68、[卡顿监测原理]() * 69、[组件化过程中的坑]() -* 70、[Mach-O文件]() +* 70、[Mach-O文件](https://www.jianshu.com/p/7c87e115492d)、[深入iOS系统底层之程序映像](https://www.jianshu.com/p/3b83193ff851) * 71、[深入理解Tagged Pointer](https://www.jianshu.com/p/c9089494fb6c) * 72、[iOS 的渲染机制以及 UIView 的自动布局流程](https://www.dazhuanlan.com/2020/01/31/5e33cdfb28a2a/) * 73、[MD5、AES、RSA等加密原理]() -* 74、[pod install和pod update的区别]() +* 74、[pod install和pod update的区别](https://blog.csdn.net/jhope/article/details/81535586) * 75、[跨平台框架原理]() From aaf977d10efde6c9c889dc87a7d56e589f7ca20a Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 26 Nov 2020 23:56:39 +0800 Subject: [PATCH 118/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 62576ee2..dce2971a 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -121,6 +121,7 @@ * 6、[iOS LLVM-Clang 浅谈](https://www.jianshu.com/p/7ceca351a045) * 7、[iOSer逆向](https://iosre.com) * 8、[fishhook 原理探究](https://mp.weixin.qq.com/s/uP3PASr7IoOMCQ-yy4RanA) +* 9、[Mach-O文件](https://www.jianshu.com/p/7c87e115492d)、[深入iOS系统底层之程序映像](https://www.jianshu.com/p/3b83193ff851) ## 五、音视频 From e8680f5e49878aff3094672e04ef36c0b570b587 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 27 Nov 2020 00:12:37 +0800 Subject: [PATCH 119/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m | 1 + 1 file changed, 1 insertion(+) diff --git a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m index 0d6c373e..af387741 100644 --- a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m +++ b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m @@ -36,6 +36,7 @@ + (void)load { const char* path = _dyld_get_image_name((unsigned)iImg); NSString *imagePath = [NSString stringWithUTF8String:path]; +// NSLog(@"映像 %@",imagePath); NSBundle* mainBundle = [NSBundle mainBundle]; NSString* bundlePath = [mainBundle bundlePath]; From 9c092a916b6973896c12d7ce8a05fa0dee16b702 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 27 Nov 2020 00:23:13 +0800 Subject: [PATCH 120/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m index af387741..1f9ea3cd 100644 --- a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m +++ b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m @@ -30,6 +30,8 @@ + (void)load { CFAbsoluteTime time1 =CFAbsoluteTimeGetCurrent(); +// [深入iOS系统底层之程序映像](https://www.jianshu.com/p/3b83193ff851) + int imageCount = (int)_dyld_image_count(); for(int iImg = 0; iImg < imageCount; iImg++) { From cb8bdf0481a9ff200feee5fd25134d84e6c1ea21 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 27 Nov 2020 00:42:10 +0800 Subject: [PATCH 121/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 ++ "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index acf8fc5a..7fc2a54b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -50,3 +50,5 @@ * 46、[【IOS开发高级系列】dyld专题](https://www.jianshu.com/p/5f337da8fbef) * 47、[iOS图片加载速度极限优化—FastImageCache解析](https://note.youdao.com/ynoteshare1/index.html?id=c66e46ed804849833a3189952afcf2c0&type=note) * 48、[深入iOS系统底层之程序映像](https://www.jianshu.com/p/3b83193ff851) +* 49、[深入iOS系统底层之crash解决方法](https://www.jianshu.com/p/cf0945f9c1f8) + diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index dce2971a..1049b610 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -122,6 +122,7 @@ * 7、[iOSer逆向](https://iosre.com) * 8、[fishhook 原理探究](https://mp.weixin.qq.com/s/uP3PASr7IoOMCQ-yy4RanA) * 9、[Mach-O文件](https://www.jianshu.com/p/7c87e115492d)、[深入iOS系统底层之程序映像](https://www.jianshu.com/p/3b83193ff851) +* 10、[深入iOS底层系列](https://www.jianshu.com/nb/21164557) ## 五、音视频 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index a61e3b50..31195e45 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -69,7 +69,7 @@ * 62、[什么是@synchronized](https://blog.csdn.net/qq_28551705/article/details/86094764) * 63、[线程和进程的区别](https://www.jianshu.com/p/68b274548069) * 64、[对于大图片加载引起的oom问题,怎么处理](https://www.jianshu.com/p/52e3535dd37c) -* 65、[Crash堆栈和符号的对应解析符号化]() +* 65、[Crash堆栈和符号的对应解析符号化](https://www.jianshu.com/p/cf0945f9c1f8) * 66、[IPA包签名原理]() * 67、[load的详细过程](https://blog.csdn.net/Lea__DongYang/article/details/79702537) * 68、[卡顿监测原理]() From cfd8d1b92ba634cc697f0081837319bbec4d88d0 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 27 Nov 2020 13:52:37 +0800 Subject: [PATCH 122/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 +- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 7fc2a54b..d88cf625 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -51,4 +51,4 @@ * 47、[iOS图片加载速度极限优化—FastImageCache解析](https://note.youdao.com/ynoteshare1/index.html?id=c66e46ed804849833a3189952afcf2c0&type=note) * 48、[深入iOS系统底层之程序映像](https://www.jianshu.com/p/3b83193ff851) * 49、[深入iOS系统底层之crash解决方法](https://www.jianshu.com/p/cf0945f9c1f8) - +* 50、[深入iOS系统底层之CPU寄存器](https://www.jianshu.com/p/6d7a57794122) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 31195e45..2928abeb 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -69,7 +69,7 @@ * 62、[什么是@synchronized](https://blog.csdn.net/qq_28551705/article/details/86094764) * 63、[线程和进程的区别](https://www.jianshu.com/p/68b274548069) * 64、[对于大图片加载引起的oom问题,怎么处理](https://www.jianshu.com/p/52e3535dd37c) -* 65、[Crash堆栈和符号的对应解析符号化](https://www.jianshu.com/p/cf0945f9c1f8) +* 65、[Crash堆栈和符号的对应解析符号化](https://www.jianshu.com/p/29051908c74b) * 66、[IPA包签名原理]() * 67、[load的详细过程](https://blog.csdn.net/Lea__DongYang/article/details/79702537) * 68、[卡顿监测原理]() From 51930afc842e3e48c4595912b39089aaaa89cf4f Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 27 Nov 2020 23:10:51 +0800 Subject: [PATCH 123/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 7 +++++++ "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 +- ...217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 3 +++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index d88cf625..74e8339e 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -52,3 +52,10 @@ * 48、[深入iOS系统底层之程序映像](https://www.jianshu.com/p/3b83193ff851) * 49、[深入iOS系统底层之crash解决方法](https://www.jianshu.com/p/cf0945f9c1f8) * 50、[深入iOS系统底层之CPU寄存器](https://www.jianshu.com/p/6d7a57794122) +* 51、[漫谈iOS Crash收集框架](http://www.cocoachina.com/articles/12301) +* 52、[iOS crash log手动解析](https://www.jianshu.com/p/98038765743b) +* 53、[iOS Crash分析必备:符号化系统库方法](https://www.jianshu.com/p/f9eeeecff8d8) +* 54、[使用symbolicatecrash解析了一个crash log](https://www.jianshu.com/p/0a1c029e910f) +* 55、[如何符号化Objective-C调用栈](https://www.jianshu.com/p/3e5097a9be46) +* 56、[移动端监控体系之技术原理剖析](https://www.jianshu.com/p/8123fc17fe0e) +* 57、[iOS无埋点数据SDK实践之路](https://www.jianshu.com/p/69ce01e15042) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 1049b610..dfbd95e3 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -169,6 +169,7 @@ * 1、[IOS设计模式探索(大话设计模式)](https://github.com/huang303513/Design-Pattern-For-iOS.git) * 2、[面向对象设计的设计原则和设计模式](https://github.com/knightsj/object-oriented-design) +* 3、[iOS VIPER架构实践(一):从MVC到MVVM到VIPER](https://juejin.cn/post/6844903491941433351) ## 十一、优秀三方源码解析 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 2928abeb..5471d32a 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -72,7 +72,7 @@ * 65、[Crash堆栈和符号的对应解析符号化](https://www.jianshu.com/p/29051908c74b) * 66、[IPA包签名原理]() * 67、[load的详细过程](https://blog.csdn.net/Lea__DongYang/article/details/79702537) -* 68、[卡顿监测原理]() +* 68、[卡顿监测原理](https://www.jianshu.com/p/8123fc17fe0e) * 69、[组件化过程中的坑]() * 70、[Mach-O文件](https://www.jianshu.com/p/7c87e115492d)、[深入iOS系统底层之程序映像](https://www.jianshu.com/p/3b83193ff851) * 71、[深入理解Tagged Pointer](https://www.jianshu.com/p/c9089494fb6c) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index 39dcb0e5..871ca218 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -75,6 +75,9 @@ * 73、[zhangferry](https://juejin.im/user/2242659450368119) * 74、[酷酷的哀殿](https://ai-chan.top/) * 75、[陈满iOS](https://juejin.cn/user/3245414055161870) +* 76、[黑超熊猫zuik](https://juejin.cn/user/2594503170727399) +* 77、[卖萌凉](https://www.jianshu.com/u/5e309e5486c6) + ## 高质量微信公众号 From 77e854a70987750ba140055d0b329811396230c2 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sat, 28 Nov 2020 00:49:29 +0800 Subject: [PATCH 124/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m | 1 + .../DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 1 + 2 files changed, 2 insertions(+) diff --git a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m index 1f9ea3cd..020953ec 100644 --- a/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m +++ b/iOS_Tips/DarkMode/WorkIssues/APM/APMMonitor/SLAPMLoadTime.m @@ -96,6 +96,7 @@ + (void)LDAPM_Load { }; [_loadInfoArray addObject:infoDic]; + NSLog(@"loadTime %@",infoDic.description); } @end diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 74e8339e..6881b4d7 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -59,3 +59,4 @@ * 55、[如何符号化Objective-C调用栈](https://www.jianshu.com/p/3e5097a9be46) * 56、[移动端监控体系之技术原理剖析](https://www.jianshu.com/p/8123fc17fe0e) * 57、[iOS无埋点数据SDK实践之路](https://www.jianshu.com/p/69ce01e15042) +* 58、[APM系列(二):电量消耗速率监控](https://kyson.cn/index.php/archives/150/) From d1250d39d2e9f3ecdaa23a9340861d9c145a5acb Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sat, 28 Nov 2020 19:29:55 +0800 Subject: [PATCH 125/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 5471d32a..6063b935 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -70,14 +70,14 @@ * 63、[线程和进程的区别](https://www.jianshu.com/p/68b274548069) * 64、[对于大图片加载引起的oom问题,怎么处理](https://www.jianshu.com/p/52e3535dd37c) * 65、[Crash堆栈和符号的对应解析符号化](https://www.jianshu.com/p/29051908c74b) -* 66、[IPA包签名原理]() +* 66、[IPA包签名原理](https://juejin.cn/post/6844903744233013262) * 67、[load的详细过程](https://blog.csdn.net/Lea__DongYang/article/details/79702537) * 68、[卡顿监测原理](https://www.jianshu.com/p/8123fc17fe0e) -* 69、[组件化过程中的坑]() +* 69、[组件化过程中的坑](https://www.jianshu.com/p/a869650dd3b6) * 70、[Mach-O文件](https://www.jianshu.com/p/7c87e115492d)、[深入iOS系统底层之程序映像](https://www.jianshu.com/p/3b83193ff851) * 71、[深入理解Tagged Pointer](https://www.jianshu.com/p/c9089494fb6c) * 72、[iOS 的渲染机制以及 UIView 的自动布局流程](https://www.dazhuanlan.com/2020/01/31/5e33cdfb28a2a/) -* 73、[MD5、AES、RSA等加密原理]() +* 73、[MD5(哈希/摘要算法)、AES和DES(对称加密)、RSA(非对称加密)](https://blog.csdn.net/seoyundu/article/details/88112861) * 74、[pod install和pod update的区别](https://blog.csdn.net/jhope/article/details/81535586) * 75、[跨平台框架原理]() @@ -96,7 +96,7 @@ * 10、[tcp,为什么4次断开,tcp的拥塞机制,为什么这么设计]() * 11、[TCP/UDP]() * 12、[图解 | 什么是HTTP简史](https://mp.weixin.qq.com/s/LV3cFpQtMUntMg6zn-01pQ) -* 13、[Charles抓包原理]() +* 13、[Charles抓包原理](https://www.jianshu.com/p/f6f6a21e17c0) ### 算法 From 21c68e759be6d51435983bed12446f3f984e1b6f Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sun, 29 Nov 2020 18:10:28 +0800 Subject: [PATCH 126/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 6063b935..54b08aec 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -90,11 +90,11 @@ * 4、[如何保障客户端与服务器交互中的数据安全](https://netsecurity.51cto.com/art/202002/610473.htm) * 5、[iOS面试备战-网络篇](https://juejin.im/post/6844904202523639822#comment) * 6、[在浏览器输入url后发生了什么](https://www.jianshu.com/p/7eea6fbc5fcd) -* 7、[TCP三次握手、四次挥手、https加密原理]() +* 7、[TCP三次握手、四次挥手、https加密原理](https://www.cnblogs.com/imstudy/p/10669631.html) * 8、[为什么TCP4次挥手时等待为2MSL?](https://www.zhihu.com/question/67013338) -* 9、[DNS的搜索过程]() +* 9、[DNS的搜索过程](https://juejin.cn/post/6844904165370544141) * 10、[tcp,为什么4次断开,tcp的拥塞机制,为什么这么设计]() -* 11、[TCP/UDP]() +* 11、[TCP/UDP](https://juejin.cn/post/6844903889146216456) * 12、[图解 | 什么是HTTP简史](https://mp.weixin.qq.com/s/LV3cFpQtMUntMg6zn-01pQ) * 13、[Charles抓包原理](https://www.jianshu.com/p/f6f6a21e17c0) From 1e4a3cac4d67a66380793c76a3db08278aa9719f Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sun, 29 Nov 2020 20:26:13 +0800 Subject: [PATCH 127/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 1 + .../DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 3 ++- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 8 ++++++-- ...17\346\212\200\346\234\257\345\215\232\345\256\242.md" | 1 + 4 files changed, 10 insertions(+), 3 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 6881b4d7..2b27d421 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -60,3 +60,4 @@ * 56、[移动端监控体系之技术原理剖析](https://www.jianshu.com/p/8123fc17fe0e) * 57、[iOS无埋点数据SDK实践之路](https://www.jianshu.com/p/69ce01e15042) * 58、[APM系列(二):电量消耗速率监控](https://kyson.cn/index.php/archives/150/) +* 59、[有赞webview加速平台探索与建设(一)](https://tech.youzan.com/youzan-webview-goldwing-one/) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index dfbd95e3..a5f79819 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -145,7 +145,8 @@ * 7、[SYWebViewBridge](https://mp.weixin.qq.com/s/JDCyWg1AYemxbnFbvY5E9w) * 8、[JSPatch-实现原理详解](https://github.com/bang590/JSPatch/wiki/JSPatch-实现原理详解) * 9、[WKWebview秒开实践分享及问题解决方案](https://juejin.im/post/6887161842406260744) -*10、[轻量级低风险 iOS 热更新方案](https://mp.weixin.qq.com/s/2re_s3NmOvE9RXlbGQqGDA) +* 10、[轻量级低风险 iOS 热更新方案](https://mp.weixin.qq.com/s/2re_s3NmOvE9RXlbGQqGDA) +* 11、[有赞webview加速平台探索与建设(一)](https://tech.youzan.com/youzan-webview-goldwing-one/) ## 七、Shell脚本 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 54b08aec..fac8ae5d 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -80,7 +80,9 @@ * 73、[MD5(哈希/摘要算法)、AES和DES(对称加密)、RSA(非对称加密)](https://blog.csdn.net/seoyundu/article/details/88112861) * 74、[pod install和pod update的区别](https://blog.csdn.net/jhope/article/details/81535586) * 75、[跨平台框架原理]() - +* 76、[NSString的内部原理、taggedPointString](https://www.jianshu.com/p/627815e1996b) +* 77、[Mian函数启动前的流程,是谁加载的动态库(dyld),runtime在何时加载](https://www.jianshu.com/p/5efe327ac7ea) +* 78、[解释一下段⻚式的内存管理,段⻚式虚拟内存的含义是什么,怎么进行换⻚]() ### 网络 @@ -92,11 +94,12 @@ * 6、[在浏览器输入url后发生了什么](https://www.jianshu.com/p/7eea6fbc5fcd) * 7、[TCP三次握手、四次挥手、https加密原理](https://www.cnblogs.com/imstudy/p/10669631.html) * 8、[为什么TCP4次挥手时等待为2MSL?](https://www.zhihu.com/question/67013338) -* 9、[DNS的搜索过程](https://juejin.cn/post/6844904165370544141) +* 9、[DNS的搜索过程](https://juejin.cn/post/6884183177926033416) * 10、[tcp,为什么4次断开,tcp的拥塞机制,为什么这么设计]() * 11、[TCP/UDP](https://juejin.cn/post/6844903889146216456) * 12、[图解 | 什么是HTTP简史](https://mp.weixin.qq.com/s/LV3cFpQtMUntMg6zn-01pQ) * 13、[Charles抓包原理](https://www.jianshu.com/p/f6f6a21e17c0) +* 14、[DNS的查找过程,什么是DNS劫持](https://juejin.cn/post/6884183177926033416) ### 算法 @@ -121,3 +124,4 @@ * 19、[找出无序数组中所有3个数字加起来是0 的数字(先排序,再双指针)]() * 20、[最长回文子串]() * 21、[找出无序数组中所有3个数字加起来是0 的数字]() +* 22、[找出两个有序数组的中位数]() diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index 871ca218..4420c680 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -77,6 +77,7 @@ * 75、[陈满iOS](https://juejin.cn/user/3245414055161870) * 76、[黑超熊猫zuik](https://juejin.cn/user/2594503170727399) * 77、[卖萌凉](https://www.jianshu.com/u/5e309e5486c6) +* 78、[有赞技术团队](https://tech.youzan.com) From 05c5963671baa5f09a0b5811b500ab3f323317fa Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 30 Nov 2020 00:09:00 +0800 Subject: [PATCH 128/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SLBinaryResetViewController.h" | 2 +- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 4 ++++ .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 4 ++-- ...07\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\344\272\214\350\277\233\345\210\266\351\207\215\346\216\222/SLBinaryResetViewController.h" "b/iOS_Tips/DarkMode/WorkIssues/\344\272\214\350\277\233\345\210\266\351\207\215\346\216\222/SLBinaryResetViewController.h" index 21458aeb..23c47e97 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\344\272\214\350\277\233\345\210\266\351\207\215\346\216\222/SLBinaryResetViewController.h" +++ "b/iOS_Tips/DarkMode/WorkIssues/\344\272\214\350\277\233\345\210\266\351\207\215\346\216\222/SLBinaryResetViewController.h" @@ -10,7 +10,7 @@ NS_ASSUME_NONNULL_BEGIN -//参考:https://juejin.im/post/5e97c3c751882573b86f9d00#heading-17 +//参考:https://juejin.cn/post/6844904130406793224 // https://github.com/rhythmkay/PGOAnalyzer ///二进制重排优化启动时间 @interface SLBinaryResetViewController : SLViewController diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index a5f79819..dd70147e 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -123,6 +123,7 @@ * 8、[fishhook 原理探究](https://mp.weixin.qq.com/s/uP3PASr7IoOMCQ-yy4RanA) * 9、[Mach-O文件](https://www.jianshu.com/p/7c87e115492d)、[深入iOS系统底层之程序映像](https://www.jianshu.com/p/3b83193ff851) * 10、[深入iOS底层系列](https://www.jianshu.com/nb/21164557) +* 11、[iOS App 安全加固方案调研](https://mp.weixin.qq.com/s?__biz=MzI2NzI4MTEwNA==&mid=2247485642&idx=1&sn=dce8e7581d94c8d8d2b79366f6223161&chksm=ea807f75ddf7f663daf6776b0f5a98aeea2e735e08c3a5268fd00f45b5a893d0e8dbac03b0f8&mpshare=1&scene=23&srcid=%23rd) ## 五、音视频 @@ -147,6 +148,8 @@ * 9、[WKWebview秒开实践分享及问题解决方案](https://juejin.im/post/6887161842406260744) * 10、[轻量级低风险 iOS 热更新方案](https://mp.weixin.qq.com/s/2re_s3NmOvE9RXlbGQqGDA) * 11、[有赞webview加速平台探索与建设(一)](https://tech.youzan.com/youzan-webview-goldwing-one/) +* 12、[ReactNative iOS 框架源码解析](https://juejin.cn/post/6844904190385487886) +* 13、[写一个易于维护使用方便性能可靠的Hybrid框架](https://juejin.cn/post/6844903733583675406) ## 七、Shell脚本 @@ -171,6 +174,7 @@ * 1、[IOS设计模式探索(大话设计模式)](https://github.com/huang303513/Design-Pattern-For-iOS.git) * 2、[面向对象设计的设计原则和设计模式](https://github.com/knightsj/object-oriented-design) * 3、[iOS VIPER架构实践(一):从MVC到MVVM到VIPER](https://juejin.cn/post/6844903491941433351) +* 4、[浅谈 MVC、MVP 和 MVVM 架构模式](https://draveness.me/mvx/) ## 十一、优秀三方源码解析 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index fac8ae5d..bf4feec7 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -82,7 +82,8 @@ * 75、[跨平台框架原理]() * 76、[NSString的内部原理、taggedPointString](https://www.jianshu.com/p/627815e1996b) * 77、[Mian函数启动前的流程,是谁加载的动态库(dyld),runtime在何时加载](https://www.jianshu.com/p/5efe327ac7ea) -* 78、[解释一下段⻚式的内存管理,段⻚式虚拟内存的含义是什么,怎么进行换⻚]() +* 78、[解释一下段⻚式的内存管理,段⻚式虚拟内存的含义是什么,怎么进行换⻚](https://blog.csdn.net/low5252/article/details/106075945) +* 79、[KVO存在哪些⻛险](https://www.cnblogs.com/wengzilin/p/4346775.html) ### 网络 @@ -124,4 +125,3 @@ * 19、[找出无序数组中所有3个数字加起来是0 的数字(先排序,再双指针)]() * 20、[最长回文子串]() * 21、[找出无序数组中所有3个数字加起来是0 的数字]() -* 22、[找出两个有序数组的中位数]() diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index 4420c680..1cfcbba4 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -78,7 +78,7 @@ * 76、[黑超熊猫zuik](https://juejin.cn/user/2594503170727399) * 77、[卖萌凉](https://www.jianshu.com/u/5e309e5486c6) * 78、[有赞技术团队](https://tech.youzan.com) - +* 79、[Lewis](https://juejin.cn/user/3913917125896477) ## 高质量微信公众号 From 60e9a4a36eb630ac1646ca1f9630481f50e74fc2 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Mon, 30 Nov 2020 16:18:57 +0800 Subject: [PATCH 129/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index bf4feec7..4521a1de 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -84,6 +84,7 @@ * 77、[Mian函数启动前的流程,是谁加载的动态库(dyld),runtime在何时加载](https://www.jianshu.com/p/5efe327ac7ea) * 78、[解释一下段⻚式的内存管理,段⻚式虚拟内存的含义是什么,怎么进行换⻚](https://blog.csdn.net/low5252/article/details/106075945) * 79、[KVO存在哪些⻛险](https://www.cnblogs.com/wengzilin/p/4346775.html) +* 80、[大批量数据写入数据库怎么做](分表并发写入) ### 网络 From 49cb4e53c13435391169d62d8a13843a142585ce Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 1 Dec 2020 21:32:36 +0800 Subject: [PATCH 130/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\351\235\242\350\257\225\351\242\230.md" | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 4521a1de..5701c311 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -85,6 +85,14 @@ * 78、[解释一下段⻚式的内存管理,段⻚式虚拟内存的含义是什么,怎么进行换⻚](https://blog.csdn.net/low5252/article/details/106075945) * 79、[KVO存在哪些⻛险](https://www.cnblogs.com/wengzilin/p/4346775.html) * 80、[大批量数据写入数据库怎么做](分表并发写入) +* 81、[从点击屏幕开始,runloop怎么进行工作的](https://www.colabug.com/2017/1225/2102566/) +* 82、[编译过程](https://blog.csdn.net/vincentiss/article/details/54617915) +* 83、[MVVM]() +* 84、[iOS内存管理(MRC、ARC)深入浅出](https://www.jianshu.com/p/4f49c5c81021) +* 85、[APNS](https://www.jianshu.com/p/032bfc949917) +* 86、[AFN的二次封装]() +* 87、[聊聊CoreData、FMDB](https://www.jianshu.com/p/5a085a4fe2d7) + ### 网络 @@ -102,6 +110,9 @@ * 12、[图解 | 什么是HTTP简史](https://mp.weixin.qq.com/s/LV3cFpQtMUntMg6zn-01pQ) * 13、[Charles抓包原理](https://www.jianshu.com/p/f6f6a21e17c0) * 14、[DNS的查找过程,什么是DNS劫持](https://juejin.cn/post/6884183177926033416) +* 15、[Get和Post](https://juejin.cn/post/6844904004707696648) +* 16、[http的响应状态码](https://juejin.cn/post/6844903940832641037) +* 17、[https抓包过程](https://www.jianshu.com/p/7a88617ce80b) ### 算法 @@ -126,3 +137,4 @@ * 19、[找出无序数组中所有3个数字加起来是0 的数字(先排序,再双指针)]() * 20、[最长回文子串]() * 21、[找出无序数组中所有3个数字加起来是0 的数字]() +* 22、[8000W个字符串,每个长度在100以内,要求找到频率最高的前1000个]() From 720432c6530882e2e58270c60b99b0d1c0f2c9ed Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Tue, 1 Dec 2020 23:36:58 +0800 Subject: [PATCH 131/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 1 + "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index 2b27d421..a0f5f05b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -61,3 +61,4 @@ * 57、[iOS无埋点数据SDK实践之路](https://www.jianshu.com/p/69ce01e15042) * 58、[APM系列(二):电量消耗速率监控](https://kyson.cn/index.php/archives/150/) * 59、[有赞webview加速平台探索与建设(一)](https://tech.youzan.com/youzan-webview-goldwing-one/) +* 60、[iOS 网络基础和网络优化](https://juejin.cn/post/6868945803856052231) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index dd70147e..8c306346 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -175,6 +175,7 @@ * 2、[面向对象设计的设计原则和设计模式](https://github.com/knightsj/object-oriented-design) * 3、[iOS VIPER架构实践(一):从MVC到MVVM到VIPER](https://juejin.cn/post/6844903491941433351) * 4、[浅谈 MVC、MVP 和 MVVM 架构模式](https://draveness.me/mvx/) +* 5、[iOS MVC、MVVM、MVP架构模式浅浅析](https://juejin.cn/post/6844903798591193095) ## 十一、优秀三方源码解析 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 5701c311..6f755274 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -92,6 +92,7 @@ * 85、[APNS](https://www.jianshu.com/p/032bfc949917) * 86、[AFN的二次封装]() * 87、[聊聊CoreData、FMDB](https://www.jianshu.com/p/5a085a4fe2d7) +* 88、[多线程相关]() ### 网络 @@ -137,4 +138,4 @@ * 19、[找出无序数组中所有3个数字加起来是0 的数字(先排序,再双指针)]() * 20、[最长回文子串]() * 21、[找出无序数组中所有3个数字加起来是0 的数字]() -* 22、[8000W个字符串,每个长度在100以内,要求找到频率最高的前1000个]() +* 22、[8000W个字符串,每个长度在100以内,要求找到频率最高的前1000个](https://leetcode-cn.com/problems/top-k-frequent-elements) From 70fc29ecf2811f2392c5aa534853ef27b633f3b6 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 2 Dec 2020 09:16:37 +0800 Subject: [PATCH 132/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 6f755274..5c0fcfd6 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -92,7 +92,7 @@ * 85、[APNS](https://www.jianshu.com/p/032bfc949917) * 86、[AFN的二次封装]() * 87、[聊聊CoreData、FMDB](https://www.jianshu.com/p/5a085a4fe2d7) -* 88、[多线程相关]() +* 88、[多线程相关](https://www.cnblogs.com/orang123/p/12434774.html) ### 网络 From 48e37bdefe179ff984313bde7fedb594b017171d Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 2 Dec 2020 11:31:05 +0800 Subject: [PATCH 133/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 5c0fcfd6..249fce33 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -93,6 +93,8 @@ * 86、[AFN的二次封装]() * 87、[聊聊CoreData、FMDB](https://www.jianshu.com/p/5a085a4fe2d7) * 88、[多线程相关](https://www.cnblogs.com/orang123/p/12434774.html) +* 89、[http的header有什么字段?]() +* 90、[TimeProfile的详细使用]() ### 网络 From 43cc7226ba9c0dd27637538bffe408eda20d027f Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 4 Dec 2020 19:44:56 +0800 Subject: [PATCH 134/145] =?UTF-8?q?cell=E5=A4=8D=E7=94=A8=E9=87=8D?= =?UTF-8?q?=E7=BD=AE=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/DarkMode/WKWebView/WebNative/SLReusableManager.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/iOS_Tips/DarkMode/WKWebView/WebNative/SLReusableManager.m b/iOS_Tips/DarkMode/WKWebView/WebNative/SLReusableManager.m index 269c3082..a2a5805a 100644 --- a/iOS_Tips/DarkMode/WKWebView/WebNative/SLReusableManager.m +++ b/iOS_Tips/DarkMode/WKWebView/WebNative/SLReusableManager.m @@ -225,6 +225,7 @@ - (void)willDisappearCellWithDirection:(BOOL)top { self.willDisplayIndexTop = self.willDisplayIndexTop+1; NSLog(@"上 第 %ld 个cell消失",self.willDisplayIndexTop); SLReusableCell *cell = self.visibleCells.firstObject; + cell.layer.contents = nil; NSHashTable * hashTable= self.reusablePool[cell.cellID]; [hashTable addObject:cell]; [self.visibleCells removeObjectAtIndex:0]; @@ -236,6 +237,7 @@ - (void)willDisappearCellWithDirection:(BOOL)top { self.willDisplayIndexBottom = self.willDisplayIndexBottom-1; NSLog(@"下 第 %ld 个cell消失",self.willDisplayIndexBottom); SLReusableCell *cell = self.visibleCells.lastObject; + cell.layer.contents = nil; NSHashTable * hashTable= self.reusablePool[cell.cellID]; [hashTable addObject:cell]; [self.visibleCells removeLastObject]; From f05f55efe05993b7c79d0e0147e63740394e7375 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sat, 5 Dec 2020 22:37:14 +0800 Subject: [PATCH 135/145] =?UTF-8?q?ios14YYAnimatedImageView=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Tips/.DS_Store | Bin 10244 -> 10244 bytes iOS_Tips/DarkMode.xcodeproj/project.pbxproj | 14 ++++++++ .../YYAnimatedImageView+iOS14.h | 18 ++++++++++ .../YYAnimatedImageView+iOS14.m | 33 ++++++++++++++++++ .../WKWebView/WebNative/SLReusableManager.m | 20 ++++++++--- .../WebNative/SLWebNativeViewController.m | 2 +- 6 files changed, 82 insertions(+), 5 deletions(-) create mode 100644 iOS_Tips/DarkMode/ThirdLibary/YYAnimatedImageViewCategory/YYAnimatedImageView+iOS14.h create mode 100644 iOS_Tips/DarkMode/ThirdLibary/YYAnimatedImageViewCategory/YYAnimatedImageView+iOS14.m diff --git a/iOS_Tips/.DS_Store b/iOS_Tips/.DS_Store index eb789d1cbce05a223d2409d53c0fa2f23ef865b4..36605046a663f0ab207dd332d7e7f883e089cd94 100644 GIT binary patch delta 151 zcmZn(XbG6$&nUGqU^hRb)Z{=xkV&;6?~Z-BQRGic>zc<11AS(ynuLhwV9EQf{BUY qWC1~Wrh|tj8w$!x9tKLo^_K+~<>ln(r31wnHx|BU-psD>mmL7}dMGIX delta 65 zcmZn(XbG6$&nU4mU^hRb#N + +@implementation YYAnimatedImageView (iOS14) ++(void)load { + // 获取系统的方法 + Method displayLayerMethod = class_getInstanceMethod(self, @selector(displayLayer:)); + // 获取更新的方法 + Method displayLayerNewMethod = class_getInstanceMethod(self, @selector(displayLayerNew:)); + // 方法交换 + method_exchangeImplementations(displayLayerMethod, displayLayerNewMethod); +} +-(void)displayLayerNew:(CALayer *)layer { + Ivar imageIvar = class_getInstanceVariable([self class], "_curFrame"); + UIImage *image = object_getIvar(self, imageIvar); + if (image) { + layer.contents = (__bridge id)image.CGImage; + } + else { + if (@available(iOS 14.0, *)) { + [super displayLayer:layer]; + } + } +} +@end diff --git a/iOS_Tips/DarkMode/WKWebView/WebNative/SLReusableManager.m b/iOS_Tips/DarkMode/WKWebView/WebNative/SLReusableManager.m index a2a5805a..f9f26458 100644 --- a/iOS_Tips/DarkMode/WKWebView/WebNative/SLReusableManager.m +++ b/iOS_Tips/DarkMode/WKWebView/WebNative/SLReusableManager.m @@ -28,7 +28,7 @@ @interface SLReusableManager () @property (nonatomic, strong) NSMutableArray *visibleCells; ///记录最后一次的偏移量,用来判断滑动方向 @property (nonatomic, assign) CGFloat lastContentOffsetY; -///顶部即将展示的索引1 +///顶部即将展示的索引 @property (nonatomic, assign) NSInteger willDisplayIndexTop; ///底部即将展示的索引 @property (nonatomic, assign) NSInteger willDisplayIndexBottom; @@ -216,7 +216,7 @@ - (void)willDisplayCellWithDirection:(BOOL)top { } } } -//即将消失的cell,在消失时放入缓冲池里 top:YES上/NO下 +//即将消失的cell,在消失时放入缓冲池里,并且重置视图cell的内容 top:YES上/NO下 - (void)willDisappearCellWithDirection:(BOOL)top { if(top) { if (self.willDisplayIndexTop+1 >= self.frameArray.count) return; @@ -225,7 +225,13 @@ - (void)willDisappearCellWithDirection:(BOOL)top { self.willDisplayIndexTop = self.willDisplayIndexTop+1; NSLog(@"上 第 %ld 个cell消失",self.willDisplayIndexTop); SLReusableCell *cell = self.visibleCells.firstObject; - cell.layer.contents = nil; + + //进入缓冲池后,要清空重置cell上的内容,防止下一个取出时显示之前的内容,我这里重置时用了自己的默认logo,你可以自己重绘默认时的cell内容 + for (UIView *subView in cell.subviews) { + subView.layer.contents = (__bridge id)[UIImage imageNamed:@"wsl"].CGImage; + } + cell.layer.contents = (__bridge id)[UIImage imageNamed:@"wsl"].CGImage; + NSHashTable * hashTable= self.reusablePool[cell.cellID]; [hashTable addObject:cell]; [self.visibleCells removeObjectAtIndex:0]; @@ -237,7 +243,13 @@ - (void)willDisappearCellWithDirection:(BOOL)top { self.willDisplayIndexBottom = self.willDisplayIndexBottom-1; NSLog(@"下 第 %ld 个cell消失",self.willDisplayIndexBottom); SLReusableCell *cell = self.visibleCells.lastObject; - cell.layer.contents = nil; + + //进入缓冲池后,要清空重置cell上的内容,防止下一个取出时显示之前的内容,我这里重置时用了自己的默认logo,你可以自己重绘默认时的cell内容 + for (UIView *subView in cell.subviews) { + subView.layer.contents = (__bridge id)[UIImage imageNamed:@"wsl"].CGImage; + } + cell.layer.contents = (__bridge id)[UIImage imageNamed:@"wsl"].CGImage; + NSHashTable * hashTable= self.reusablePool[cell.cellID]; [hashTable addObject:cell]; [self.visibleCells removeLastObject]; diff --git a/iOS_Tips/DarkMode/WKWebView/WebNative/SLWebNativeViewController.m b/iOS_Tips/DarkMode/WKWebView/WebNative/SLWebNativeViewController.m index c6e2a2cd..89617fff 100644 --- a/iOS_Tips/DarkMode/WKWebView/WebNative/SLWebNativeViewController.m +++ b/iOS_Tips/DarkMode/WKWebView/WebNative/SLWebNativeViewController.m @@ -8,7 +8,7 @@ #import "SLWebNativeViewController.h" #import -#import +#import "YYImage.h" #import #import "SLAvPlayer.h" #import From 93eda3189ad63ca13664109698c14a8f7d8785cf Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sat, 5 Dec 2020 22:37:51 +0800 Subject: [PATCH 136/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\347\254\224\350\256\260.md" | 1 + .../\351\235\242\350\257\225\351\242\230.md" | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 8c306346..3c126b9f 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -83,6 +83,7 @@ > [卡顿率降低50%!京东商城APP卡顿监控及优化实践](https://mp.weixin.qq.com/s/aJeAUAjcKOMvznDMGj2UUA) > [【性能优化】今日头条iOS客户端启动速度优化](https://www.jianshu.com/p/7096478ccbe7) > [iOS 崩溃排查入门:总览](https://ai-chan.top/2020/10/02/iOS-crash/) +> [卡顿率降低50%!京东商城APP卡顿监控及优化实践](https://mp.weixin.qq.com/s/aJeAUAjcKOMvznDMGj2UUA) ## 二、数据结构与算法 diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 249fce33..36573a2e 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -87,14 +87,22 @@ * 80、[大批量数据写入数据库怎么做](分表并发写入) * 81、[从点击屏幕开始,runloop怎么进行工作的](https://www.colabug.com/2017/1225/2102566/) * 82、[编译过程](https://blog.csdn.net/vincentiss/article/details/54617915) -* 83、[MVVM]() +* 83、[MVVM、MVC、MVP的区别]() * 84、[iOS内存管理(MRC、ARC)深入浅出](https://www.jianshu.com/p/4f49c5c81021) * 85、[APNS](https://www.jianshu.com/p/032bfc949917) * 86、[AFN的二次封装]() * 87、[聊聊CoreData、FMDB](https://www.jianshu.com/p/5a085a4fe2d7) * 88、[多线程相关](https://www.cnblogs.com/orang123/p/12434774.html) -* 89、[http的header有什么字段?]() +* 89、[http的header有什么字段?](https://blog.csdn.net/u013252047/article/details/80116742) * 90、[TimeProfile的详细使用]() +* 91、[卡顿的形成原因?什么是离屏渲染?]() +* 92、[Rac、SDWebImage、YYKit、AFN的原理]() +* 93、[Js与na交互的原理]() +* 94、[设计一个下载/断点续传框架]() +* 95、[NSCopy/NSCoder](https://blog.csdn.net/u014205968/article/details/78260402) +* 96、[进程间通信的几种方式](https://www.jianshu.com/p/c60f4f3cc3d2) +* 97、[引用计数为0时,内存会立即释放吗?内存是什么时候释放的?]() +* 98、[iOS 底层 - dealloc 的底层实现](https://www.jianshu.com/p/5aee2e571f6b) ### 网络 @@ -141,3 +149,4 @@ * 20、[最长回文子串]() * 21、[找出无序数组中所有3个数字加起来是0 的数字]() * 22、[8000W个字符串,每个长度在100以内,要求找到频率最高的前1000个](https://leetcode-cn.com/problems/top-k-frequent-elements) +* 23、[利用栈结构实现队列结构](https://www.cnblogs.com/lisen10/p/10892546.html) From b58f2314c18ca83fee52ac760fa93749b29be63a Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sun, 6 Dec 2020 16:09:35 +0800 Subject: [PATCH 137/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WKWebView/WebNative/SLReusableManager.m | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/iOS_Tips/DarkMode/WKWebView/WebNative/SLReusableManager.m b/iOS_Tips/DarkMode/WKWebView/WebNative/SLReusableManager.m index f9f26458..5962dd7b 100644 --- a/iOS_Tips/DarkMode/WKWebView/WebNative/SLReusableManager.m +++ b/iOS_Tips/DarkMode/WKWebView/WebNative/SLReusableManager.m @@ -227,10 +227,10 @@ - (void)willDisappearCellWithDirection:(BOOL)top { SLReusableCell *cell = self.visibleCells.firstObject; //进入缓冲池后,要清空重置cell上的内容,防止下一个取出时显示之前的内容,我这里重置时用了自己的默认logo,你可以自己重绘默认时的cell内容 - for (UIView *subView in cell.subviews) { - subView.layer.contents = (__bridge id)[UIImage imageNamed:@"wsl"].CGImage; - } - cell.layer.contents = (__bridge id)[UIImage imageNamed:@"wsl"].CGImage; +// for (UIView *subView in cell.subviews) { +// subView.layer.contents = (__bridge id)[UIImage imageNamed:@"wsl"].CGImage; +// } +// cell.layer.contents = (__bridge id)[UIImage imageNamed:@"wsl"].CGImage; NSHashTable * hashTable= self.reusablePool[cell.cellID]; [hashTable addObject:cell]; @@ -245,10 +245,10 @@ - (void)willDisappearCellWithDirection:(BOOL)top { SLReusableCell *cell = self.visibleCells.lastObject; //进入缓冲池后,要清空重置cell上的内容,防止下一个取出时显示之前的内容,我这里重置时用了自己的默认logo,你可以自己重绘默认时的cell内容 - for (UIView *subView in cell.subviews) { - subView.layer.contents = (__bridge id)[UIImage imageNamed:@"wsl"].CGImage; - } - cell.layer.contents = (__bridge id)[UIImage imageNamed:@"wsl"].CGImage; +// for (UIView *subView in cell.subviews) { +// subView.layer.contents = (__bridge id)[UIImage imageNamed:@"wsl"].CGImage; +// } +// cell.layer.contents = (__bridge id)[UIImage imageNamed:@"wsl"].CGImage; NSHashTable * hashTable= self.reusablePool[cell.cellID]; [hashTable addObject:cell]; From 19f36e8ecd2cb2b71342a45c0e1946b59a17393b Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 10 Dec 2020 14:35:07 +0800 Subject: [PATCH 138/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 1 + .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 4 ++++ ...07\217\346\212\200\346\234\257\345\215\232\345\256\242.md" | 1 + 3 files changed, 6 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index a0f5f05b..f87bfb89 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -62,3 +62,4 @@ * 58、[APM系列(二):电量消耗速率监控](https://kyson.cn/index.php/archives/150/) * 59、[有赞webview加速平台探索与建设(一)](https://tech.youzan.com/youzan-webview-goldwing-one/) * 60、[iOS 网络基础和网络优化](https://juejin.cn/post/6868945803856052231) +* 61、[llvm 编译器高级用法:第三方库插桩](https://mp.weixin.qq.com/s/RKg8f6B2jSNuFEImtMnq2Q) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 36573a2e..ed4398dd 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -103,6 +103,9 @@ * 96、[进程间通信的几种方式](https://www.jianshu.com/p/c60f4f3cc3d2) * 97、[引用计数为0时,内存会立即释放吗?内存是什么时候释放的?]() * 98、[iOS 底层 - dealloc 的底层实现](https://www.jianshu.com/p/5aee2e571f6b) +* 99、[git merge/rebase](https://blog.csdn.net/kuangdacaikuang/article/details/79619828) +* 100、[响应链的应用]() +* 101、[GCD Block会捕获self吗?]() ### 网络 @@ -150,3 +153,4 @@ * 21、[找出无序数组中所有3个数字加起来是0 的数字]() * 22、[8000W个字符串,每个长度在100以内,要求找到频率最高的前1000个](https://leetcode-cn.com/problems/top-k-frequent-elements) * 23、[利用栈结构实现队列结构](https://www.cnblogs.com/lisen10/p/10892546.html) +* 24、[验证是否是对称二叉树](https://leetcode-cn.com/problems/dui-cheng-de-er-cha-shu-lcof/) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" index 1cfcbba4..b20f8a19 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\253\230\350\264\250\351\207\217\346\212\200\346\234\257\345\215\232\345\256\242.md" @@ -79,6 +79,7 @@ * 77、[卖萌凉](https://www.jianshu.com/u/5e309e5486c6) * 78、[有赞技术团队](https://tech.youzan.com) * 79、[Lewis](https://juejin.cn/user/3913917125896477) +* 80、[无夜之星辰 ](https://www.jianshu.com/u/4212f351f6b5) ## 高质量微信公众号 From 7acfa12e1cd1771f3b5aa2c2c670497627ebacda Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 10 Dec 2020 18:51:32 +0800 Subject: [PATCH 139/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 4 ++++ 1 file changed, 4 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index ed4398dd..25b2d91b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -106,6 +106,8 @@ * 99、[git merge/rebase](https://blog.csdn.net/kuangdacaikuang/article/details/79619828) * 100、[响应链的应用]() * 101、[GCD Block会捕获self吗?]() +* 102、[Bounds和Frame的区别,改变Frame的Size会改变Bounds的size吗]() +* 103、[Swift和OC的区别?类和结构体的区别?]() ### 网络 @@ -154,3 +156,5 @@ * 22、[8000W个字符串,每个长度在100以内,要求找到频率最高的前1000个](https://leetcode-cn.com/problems/top-k-frequent-elements) * 23、[利用栈结构实现队列结构](https://www.cnblogs.com/lisen10/p/10892546.html) * 24、[验证是否是对称二叉树](https://leetcode-cn.com/problems/dui-cheng-de-er-cha-shu-lcof/) +* 25、[统计所有小于非负整数 n 的质数的数量](https://leetcode-cn.com/problems/count-primes/) +* 26、[硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。](https://leetcode-cn.com/problems/coin-lcci/) From a8022160de78a43a776ac04cd5432f753b9101e5 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 10 Dec 2020 19:25:12 +0800 Subject: [PATCH 140/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 25b2d91b..ffd32ae6 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -108,6 +108,8 @@ * 101、[GCD Block会捕获self吗?]() * 102、[Bounds和Frame的区别,改变Frame的Size会改变Bounds的size吗]() * 103、[Swift和OC的区别?类和结构体的区别?]() +* 104、[pod install和pod pdate的区别]() + ### 网络 From 892a8984050898dc1bafe26a3d177486001d5151 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Fri, 11 Dec 2020 10:40:33 +0800 Subject: [PATCH 141/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index ffd32ae6..1e05dfb8 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -106,9 +106,9 @@ * 99、[git merge/rebase](https://blog.csdn.net/kuangdacaikuang/article/details/79619828) * 100、[响应链的应用]() * 101、[GCD Block会捕获self吗?]() -* 102、[Bounds和Frame的区别,改变Frame的Size会改变Bounds的size吗]() +* 102、[Bounds和Frame的区别,改变Frame的Size会改变Bounds的size吗](https://blog.csdn.net/weixin_33920401/article/details/88027725) * 103、[Swift和OC的区别?类和结构体的区别?]() -* 104、[pod install和pod pdate的区别]() +* 104、[pod install和pod pdate的区别](https://blog.csdn.net/u013538542/article/details/107932186) From b962c68ca0ae141bc3a3a2ec1c984221f73a3e40 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Sat, 12 Dec 2020 13:34:13 +0800 Subject: [PATCH 142/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\351\235\242\350\257\225\351\242\230.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" index 1e05dfb8..e0298525 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\351\235\242\350\257\225\351\242\230.md" @@ -109,7 +109,7 @@ * 102、[Bounds和Frame的区别,改变Frame的Size会改变Bounds的size吗](https://blog.csdn.net/weixin_33920401/article/details/88027725) * 103、[Swift和OC的区别?类和结构体的区别?]() * 104、[pod install和pod pdate的区别](https://blog.csdn.net/u013538542/article/details/107932186) - +* 105、[哈希冲突问题的解决办法]() ### 网络 From 17dbf8d92d122b671d9c36349184e0ec2fa3ac9a Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 17 Dec 2020 23:27:38 +0800 Subject: [PATCH 143/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index f87bfb89..a66a717f 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -63,3 +63,5 @@ * 59、[有赞webview加速平台探索与建设(一)](https://tech.youzan.com/youzan-webview-goldwing-one/) * 60、[iOS 网络基础和网络优化](https://juejin.cn/post/6868945803856052231) * 61、[llvm 编译器高级用法:第三方库插桩](https://mp.weixin.qq.com/s/RKg8f6B2jSNuFEImtMnq2Q) +* 62、[iOS 性能监控:Runloop 卡顿监控的坑](https://mp.weixin.qq.com/s/vMRQ0VuHLxpaY9oCNd5G8w) +* 63、[iOS链接原理解析与应用实践](https://mp.weixin.qq.com/s/_3WXnDolNICs2euoJph44A) From 50128aa21d9e15cdefbd1f5df764438ab3e581d0 Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Wed, 30 Dec 2020 11:48:15 +0800 Subject: [PATCH 144/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" index a66a717f..1c9e121b 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\345\267\262\346\265\217\350\247\210.md" @@ -65,3 +65,4 @@ * 61、[llvm 编译器高级用法:第三方库插桩](https://mp.weixin.qq.com/s/RKg8f6B2jSNuFEImtMnq2Q) * 62、[iOS 性能监控:Runloop 卡顿监控的坑](https://mp.weixin.qq.com/s/vMRQ0VuHLxpaY9oCNd5G8w) * 63、[iOS链接原理解析与应用实践](https://mp.weixin.qq.com/s/_3WXnDolNICs2euoJph44A) +* 64、[iOS开发--我与面试官有个约会](https://juejin.cn/post/6908303868086452237) From fdbee7cf5e18a4a49a42002ab16a0ba108f02b9d Mon Sep 17 00:00:00 2001 From: wsl <15324956576@163.com> Date: Thu, 31 Dec 2020 14:59:59 +0800 Subject: [PATCH 145/145] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" index 3c126b9f..fb81affb 100644 --- "a/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" +++ "b/iOS_Tips/DarkMode/WorkIssues/\347\254\224\350\256\260.md" @@ -151,6 +151,7 @@ * 11、[有赞webview加速平台探索与建设(一)](https://tech.youzan.com/youzan-webview-goldwing-one/) * 12、[ReactNative iOS 框架源码解析](https://juejin.cn/post/6844904190385487886) * 13、[写一个易于维护使用方便性能可靠的Hybrid框架](https://juejin.cn/post/6844903733583675406) +* 14、[今日头条品质优化 - 图文详情页秒开实践](https://mp.weixin.qq.com/s/Xqr6rQBbx7XPoBESEFuXJw) ## 七、Shell脚本