自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何构建一个支持 Windows XP 的 LIB/DLL/EXE

如何构建一个支持 Windows XP 的 LIB/DLL/EXE最近把公司的一些大型跨平台 C++ Base 项目从 CMake 构建系统切换到了 Google 的 GN Build。进展都比较顺利,直到有客户需要一个支持 Windows XP 的动态库。。。虽然马上就要 2022 年,距离 XP 的诞生已经超过 20 年,距离 XP 的废弃也超过 7 年了,但仍然架不住还是将近有 5% 的计算机运行着 XP (大陆地区甚至有 15% !),既然客户需要,那还是得支持 ????‍♂️实际上这个项

2021-11-08 17:45:22 748

原创 解决 Jenkins M1 Mac (arm64) 节点构建 iOS / macOS App 时 CompileStoryboard 卡住的问题

解决 Jenkins M1 Mac (arm64) 节点构建 iOS / macOS App 时 CompileStoryboard 卡住的问题问题发生在 Jenkins 节点机器为 M1 Mac (Apple Silicon, arm64) 的情况下,构建 iOS App 可能会卡住,目前我遇到的都是卡在 CompileStoryboard 的地方,全网搜了一下也没找到类似的状况。排查了一下估计有可能是因为调用的 xcodebuild 不是运行的原生 arm64 架构。虽然理论上运行 Rosetta

2021-04-29 17:23:21 1073

原创 Flutter 移动端屏幕采集(录屏)方案分享

Flutter 移动端屏幕采集方案分享现如今随着 Flutter 的应用越来越广泛,纯 Flutter 项目也越来越多,本篇内容主要分享的是 Flutter 移动端(iOS + Android)的屏幕采集的实现。概述在视频会议、线上课堂、游戏直播等场景,屏幕共享是一个最常见的功能。屏幕共享就是对屏幕画面的实时共享,端到端主要有几个步骤:录屏采集、视频编码及封装、实时传输、视频解封装及解码、视频渲染。一般来说,实时屏幕共享时,共享发起端以固定采样频率(一般 8 - 15帧足够)抓取到屏幕中指定源的.

2020-11-20 17:19:35 1512

原创 解决 Code Signing Error: No profiles for com.example were found (使用CMake构建iOS工程时的证书问题)

Code Signing Error: No profiles for ‘com.example’ were found: Xcode couldn’t find any iOS App Development provisioning profiles matching ‘com.example’在一台新编译机上使用 CMake 构建 iOS 工程时,遇到了这个找不到 provisioning file 的问题。尝试登陆到编译机上用 Xcode 随便打开个 iOS 工程却能正常的编译打包。解决.

2020-06-03 21:13:43 10633

原创 解决 CocoaPods trunk CDN 连接不上的问题

解决 CocoaPods trunk CDN 连接不上的问题CocoaPods 自 1.8 版本开始默认使用 trunk CDN (https://cdn.cocoapods.org/) 作为 spec 的源,本意是非常好的,避免了需要本地 clone 一份庞大的 Specs 仓库导致每次 update 都要全量更新的问题。然而不知为何国内连 trunk CDN 都被限制访问了。常见的问题...

2020-04-10 17:55:06 8289

原创 macOS 使用 QuickLook 预览高亮查看任意代码源文件

macOS 使用 QuickLook 预览高亮查看任意代码源文件很多源码文件 macOS 默认不支持通过空格快速查看,比如 Flutter 的 .dart 文件、YAML 的 .yaml、.yml、CocoaPods 的 Podfile、Podfile.lock 等等。就算通过右键文件,显示简介 -> 打开方式 将其设置为全部通过 VSCode、Android Studio 等应用...

2020-04-06 10:53:59 2031 3

原创 【SwiftUI】解决 NavigationLink 立即加载 destination View 的问题(实现懒加载)

【SwiftUI】解决 NavigationLink 立即加载 destination View 的问题(实现懒加载)

2020-03-23 02:43:36 1331 1

原创 详解 YUV 格式(I420/YUV420/NV12/NV12/YUV422)

详解 YUV 格式(I420/YUV420/NV12/NV12/YUV422)

2020-02-13 01:46:26 831

原创 使用 macOS Quick Look 预览快速查看 Flutter Dart 文件

Flutter 的 .dart 文件 macOS 默认是没法通过空格快速查看的,需要用 HomeBrew 安装插件 QLColorCodebrew cask install qlcolorcode安装后编辑 ~/Library/QuickLook/QLColorCode.qlgenerator/Contents/Info.plist 文件寻找如下属性Document types >...

2019-09-15 18:42:05 794

原创 解决 Android Studio 在 Sync Project With Gradle 时 dl.google.com:443 failed to respond 的问题

Android Studio 3.5 版本,此时已经设置了代理搜到有的解决方法说是在设置里的 Build, Execution, Deployment --> Gradle --> Android Studio 里勾选 Enable embedded Maven repository,然而 3.5 的 AS 已经没有这个选项了。实测可用的解决方法是打开 ~/.gradle/gra...

2019-09-02 14:34:37 3600 4

原创 WKWebView获取H5页面里图片地址以及图片相对视图窗口的坐标的方法

WKWebView获取H5页面里图片地址以及图片相对视图窗口的坐标的方法最近有个需求是点击放大查看H5内容页面的图片,寻找到一个比较轻量的库YHPhotoBrowser,其中根据图片位置来缩放的动画需要传递一个图片所在屏幕里的位置CGRect,想获取H5的图片坐标那就需要JS注入了- (void)handleSingleTap:(UITapGestureRecognizer *)reco...

2019-06-14 10:34:05 928

原创 LeetCode 有关递归与分治的做题笔记 Python实现

有关递归与分治的做题笔记,Python实现50. Pow(x, n)LeetCodeCN 第50题链接第一种方法:递归class Solution: def myPow(self, x: float, n: int) -> float: if n == 0: return 1 if n < 0: ...

2019-05-12 09:52:52 324

原创 LeetCode 169 求众数 Majority Element

有关递归与分治的做题笔记,Python实现169. 求众数 Majority ElementLeetCodeCN 第169题链接第一种方法:两重循环暴力求解第二种方法:哈希表记录每个元素出现次数,发现出现超过n/2的就是众数class Solution: def majorityElement(self, nums: List[int]) -> int: l...

2019-05-12 09:50:32 183

原创 LeetCode 50 Pow(x, n)

有关递归与分治的做题笔记,Python实现50. Pow(x, n)LeetCodeCN 第50题链接第一种方法:递归class Solution: def myPow(self, x: float, n: int) -> float: if n == 0: return 1 if n < 0: ...

2019-05-12 09:48:37 119

原创 LeetCode 有关二叉树的做题笔记 Python实现

有关二叉树的做题笔记,Python实现二叉树的定义# Definition for a binary tree node.class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None98. 验证二叉搜索树 Validate...

2019-05-08 10:45:23 432

原创 LeetCode 235 二叉搜索树的最近公共祖先 Lowest Common Ancestor of a Binary Search Tree Python

有关二叉树的做题笔记,Python实现235. 二叉搜索树的最近公共祖先 Lowest Common Ancestor of a Binary Search TreeLeetCodeCN 第235题链接第一种方法:用236题.二叉树的最近公共祖先的方法第二种方法:利用二叉搜索树的左子树都小于父亲节点,右子树都大于父亲节点的特性,可以把第一种方法简化一下class Solution: ...

2019-05-08 10:42:21 121

原创 LeetCode 236 二叉树的最近公共祖先 Lowest Common Ancestor of a Binary Tree Python

有关二叉树的做题笔记,Python实现236. 二叉树的最近公共祖先 Lowest Common Ancestor of a Binary TreeLeetCodeCN 第236题链接首先如果root为空,返回root,然后如果root就是p或者q,那root就是最近公共祖先。然后分别对左子树和右子树做递归并保存结果,如果两边都能找到,证明本节点就是最近公共祖先,如果一边找得到,一边找不到,...

2019-05-08 10:38:40 173

原创 LeetCode 98 验证二叉搜索树 Validate Binary Search Tree Python

有关二叉树的做题笔记,Python实现二叉树的定义# Definition for a binary tree node.class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None98. 验证二叉搜索树 Validate...

2019-05-08 10:36:12 250

原创 LeetCode 有关哈希表的做题笔记 Python实现

有关哈希表的LeetCode做题笔记,Python实现242. 有效的字母异位词 Valid AnagramLeetCodeCN 第242题链接第一种方法:对两个字符串排序后对比class Solution: def isAnagram(self, s: str, t: str) -> bool: return sorted(s) == sorted(t)...

2019-05-08 10:31:15 334

原创 LeetCode 15 三数之和 3Sum Python

有关哈希表的LeetCode做题笔记,Python实现15. 三数之和 3SumLeetCodeCN 第15题链接第一种方法:三重遍历,时间复杂度为O(n^3)第二种方法:两重遍历得到前两个数,然后查询第三个数-(a+b)是否存在。用哈希表set()class Solution(object): def threeSum(self, nums): """ ...

2019-05-08 10:29:07 167

原创 LeetCode 1 两数之和 Two Sum Python

有关哈希表的LeetCode做题笔记,Python实现1. 两数之和 Two SumLeetCodeCN 第1题链接第一种方法:用哈希表,时间复杂度是O(n)class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: dic = {} for i in...

2019-05-08 10:26:04 199

原创 LeetCode 242 有效的字母异位词 Valid Anagram Python

有关哈希表的LeetCode做题笔记,Python实现242. 有效的字母异位词 Valid AnagramLeetCodeCN 第242题链接第一种方法:对两个字符串排序后对比class Solution: def isAnagram(self, s: str, t: str) -> bool: return sorted(s) == sorted(t)...

2019-05-08 10:23:49 140

原创 LeetCode 有关栈、堆、队列的做题笔记 Python实现

有关栈、堆、队列的LeetCode做题笔记,Python实现20. 有效的括号 Valid ParenthesesLeetCodeCN 第20题链接使用 Stack 栈 来操作,用了一个技巧是先做一个字典,key为右括号,value为左括号。class Solution: def isValid(self, s: str) -> bool: stack = ...

2019-05-07 19:06:15 215

原创 LeetCode 239 滑动窗口最大值 Sliding Window Maximum Python

有关链表的LeetCode做题笔记合集,Python实现239. 滑动窗口最大值 Sliding Window MaximumLeetCodeCN 第239题链接第一种方法:用优先队列:大顶堆第二种方法:因为窗口大小固定,只需要一个双端队列即可class Solution: def maxSlidingWindow(self, nums: List[int], k: int) -...

2019-05-07 19:01:55 265

原创 LeetCode 703 数据流中的第K大元素 Kth Largest Element in a Stream Python

有关链表的LeetCode做题笔记合集,Python实现703. 数据流中的第K大元素 Kth Largest Element in a StreamLeetCodeCN 第703题链接方法一:直接降序排序,然后取第k个元素返回,add时每次都再排序一次,这样时间复杂度为O(k*logk)# 1.直接排序class KthLargest: def __init__(self, k...

2019-05-07 19:00:39 256

原创 LeetCode 20 有效的括号 Valid Parentheses Python

有关链表的LeetCode做题笔记合集,Python实现20. 有效的括号 Valid ParenthesesLeetCodeCN 第20题链接使用 Stack 栈 来操作,用了一个技巧是先做一个字典,key为右括号,value为左括号。class Solution: def isValid(self, s: str) -> bool: stack = []...

2019-05-07 18:56:53 273

原创 LeetCode 有关链表的做题笔记 Python实现

有关链表的LeetCode做题笔记合集,Python实现链表定义# Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x self.next = None206. 反转链表 Reverse Linked ListLeetCodeC...

2019-05-07 18:29:06 382

原创 LeetCode 25 k个一组翻转链表 Reverse Nodes in k-Group Python

链表定义# Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x self.next = None25. k个一组翻转链表 Reverse Nodes in k-GroupLeetCodeCN 第25题链接利用数组来实现k个一组的...

2019-05-07 18:26:36 201

原创 LeetCode 142 环形链表 II Linked List Cycle II Python

链表定义# Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x self.next = None142. 环形链表 II Linked List Cycle IILeetCodeCN 第142题链接第一种方法还是上面的用哈希表s...

2019-05-07 18:25:42 235

原创 LeetCode 141 环形链表 Linked List Cycle Python

链表定义# Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x self.next = None141. 环形链表 Linked List CycleLeetCodeCN 第141题链接三种方法1.硬做,可以设置超时或者固定循...

2019-05-07 18:23:57 136

原创 LeetCode 24 两两交换链表中的节点 Swap Nodes in Pairs Python

链表定义# Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x self.next = None24. 两两交换链表中的节点 Swap Nodes in PairsLeetCodeCN 第24题链接记录当前节点的前一个节点,当当...

2019-05-07 18:22:32 236

原创 LeetCode 206 反转链表 Reverse Linked List Python

链表定义# Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x self.next = None206. 反转链表 Reverse Linked ListLeetCodeCN 第206题链接遍历链表,迭代前节点prev,缓存当前...

2019-05-07 18:20:38 180

原创 关于 NSUserDefaults setBool 的值取出后if判断不了的问题

关于 NSUserDefaults setBool 的值取出后if判断不了的问题使用 [[NSUserDefaults standardUserDefaults] setBool:(BOOL)value forKey:(NSString *)defaultName] 设置的值,如果用普通的objectForKey:取出的值是__NSCFBoolean类型,if语句无法判断,即使后加== Y...

2019-04-23 12:05:41 537

原创 iOS集成支付宝H5支付实现跳转与回调的解决方案

 iOS集成支付宝H5支付实现跳转与回调的解决方案  前言最近有个需求,不能在iOS客户端内集成支付宝和微信的App支付SDK(为了防苹果审核检测SDK),因此使用H5支付,虽然微信和支付宝的H5支付文档都说不要在App内使用H5支付而是使用App支付,但办法总是有的。这篇讲的是支付宝H5支付如何从App跳转支付宝以及如何从支付宝跳转回App,微信支付的...

2019-03-22 22:04:30 4298

原创 iOS集成H5微信支付实现跳转与回调的解决方案

 iOS集成H5微信支付实现跳转与回调的解决方案  前言最近有个需求,不能在iOS客户端内集成支付宝和微信的App支付SDK(为了防苹果审核检测SDK),因此使用H5支付,虽然微信和支付宝的H5支付文档都说不要在App内使用H5支付而是使用App支付,但办法总是有的。这篇讲的是H5微信支付如何从App跳转微信以及如何从微信跳转回App,支付宝的见这篇:...

2019-03-22 22:01:23 6326 1

原创 iOS UITabbar图标点击动画效果实现

正常情况下,我们点击tabbar都只有一个变色效果,但有时候,如果我们想给它添加一个点击动画,该如何做呢?以下是两种方法:第一种通过tabBar: didSelectItem:代理方法接收每次点击的item,对每个item都绑定动画效果,弊端是获取到的是整个item,图标和标题都会一起动。第二种是自定一个方法单独获取tabbar item的image和label,可自定只对某个item绑定动...

2019-03-12 15:47:29 1463

原创 判断一个 NSArray 是否为空

判断一个 NSArray 是否为空if ([array isKindOfClass:[NSArray class]] &amp;&amp; array.count &gt; 0){ NSLog(@"这是一个非空数组");}

2019-03-12 15:39:59 627

原创 iPhone屏幕各种尺寸分辨率(更新至XS)

iPhone屏幕各种尺寸分辨率(更新至XS)DeviceLogic PointLogic PixelSizeScaleiPhone 2G480 × 320480 × 3203.51xiPhone 3480 × 320480 × 3203.51xiPhone 3GS480 × 320480 × 3203.51xiPhone 4...

2019-03-05 16:09:47 823

原创 iOS 判断NSString值是否为空或null并转换为空字符串

遇到了一个后台json误将null作为字符串值导致iOS客户端崩溃闪退的问题,解决方法如下:套一层判断,如果是各种情况的null则转换为@&quot;&quot;。+ (NSString *)nullToString:(id)string { if ([string isEqual:@&quot;NULL&quot;] || [string isKindOfClass:[NSNull class]] || [string is...

2019-02-12 17:54:41 4204

转载 iOS MJExtension使用方法指南(Objective-C)

iOS MJExtension使用方法指南(Objective-C)

2019-02-03 16:03:57 593

空空如也

空空如也

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

TA关注的人

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