自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

侯仕奇的博客

葵花成海,你在不在

  • 博客(174)
  • 资源 (2)
  • 问答 (7)
  • 收藏
  • 关注

原创 符号化的正确姿势

symbolicatecrash 是一个 exec (可执行文件), Xcode自带, iOS 15 之前的系统产生的 crash report, 可以直接被整个符号化, 文件路径可以通过。iOS 15 及之后的版本产生的 crash report, 格式有变, 已经无法使用 symbolicatecrash 符号化。使用条件: crash report 对应的 Archive 包是在本机构建的。将 .ips crash report 文件拖放到。中, 然后导出 .crash 符号化文件.

2023-07-10 01:13:25 848

原创 dSYM文件是什么 ?

dSYM的全称是, 所以dSYM文件就是, dSYM文件中的每个 debug symbol, 对应了一个关系, 这个关系一端是源代码里真实的符号(类名称、全局变量以及方法和函数名称), 另一端则是其定义的文件号和行号.

2023-07-08 23:22:01 1979 4

原创 结束 guard else 只能使用 return ?

如果一个或者多个条件不成立,可用 guard 语句来退出当前作用域 (guard所在的作用域)。, guard所在的方法或者函数并不一定结束, 很多人没有意识到这一点!当 return 被执行, 程序只是退出。

2023-07-07 00:04:09 147

原创 当属性观察的对象是结构体

当 struct 中的某个属性被赋值, 会生成一个新的 struct 来替换旧的 struct, 新的 struct 包含新的属性?会响应 struct 属性的变化?因为 struct 是。

2023-07-05 00:05:02 106

原创 有哪些 shell 需要了解 ?

It combines features from both ksh and tcsh, offering functionality such as programmable command-line completion, extended file globbing (文件通配), improved variable/array handling, and themeable prompts (主题化提示).The shell’s name is an acronym (首字母缩拼词) for。

2023-04-09 17:52:00 502

原创 根据bundleID查询App信息

已知App的bundleID, 怎样查询应用信息.

2023-04-04 17:46:12 1011

原创 Swift的 ?? 运算符

Swift 中的??运算符, 官方称之为, 中文常被译作空合运算符在表达式a??b中, 将对可选类型 a 进行空判断,如果 a 包含一个值就进行解包,否则就返回一个默认值 b。表达式 a 必须是 Optional 类型。默认值 b 的类型必须要和 a 存储值的类型保持一致。// 无疑空合运算符(??)提供了一种更为优雅的方式去封装条件判断和解包两种行为,显得简洁以及更具可读性。a!= nil?a!: b注意如果 a 为非空值(non-nil),那么值 b 将不会被计算。这也就是所谓的短路求值。

2023-03-28 22:52:06 422

原创 Category In Objective-C

Category, 中文名: 分类, Objective-C 2.0中新增的语言特性

2023-03-17 22:47:46 1023

原创 规并排序(Swift版本)

时间复杂度为O(nlogn);适合大规模的数据排序;相比于冒泡排序、插入排序、选择排序这三种排序算法, 更加常用;用到了分治思想(即分而治之, 英文叫 “Divide and conquer”),非常巧妙;英文名称:Merge Sort;分治思想, 在很多领域都有广泛的应用,例如算法领域有分治算法(归并排序、快速排序都属于分治算法,二分法查找也是一种分治算法);分治算法一般都是用"递归"来实现的 (分治是一种解决问题的处理思想,递归是一种编程技巧);

2023-03-06 00:15:26 414

原创 深入理解Block的内部实现

深入理解Block的内部实现在Block内部访问外部变量//// main.m// SQIPlayground//// Created by 侯仕奇 on 2020/5/26.// Copyright © 2020 零下引力. All rights reserved.//#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool {

2020-05-27 10:06:45 339

原创 在 Swift 中, enumerated() 有哪些常用的使用方式 ?

是一个用于遍历集合类型的方法,它返回一个由每个元素的索引和值组成的元组。方法过滤了索引为偶数的元素,并使用。方法将结果转换为一个只包含值的数组。在这个例子中,我们使用。在 Swift 中,

2024-03-22 19:23:02 435

原创 Swift 中的 Sequence 是什么 ?

在 Swift 中,Sequence是一个协议,它表示一个可以遍历其元素的集合类型。任何遵循Sequence协议的类型都必须提供一个迭代器,用于按顺序访问其元素。迭代器是通过方法获取的,该方法返回一个遵循的对象。Sequence协议本身并不要求集合是可变的或具有索引,它只关注遍历能力。这意味着你可以遍历一个序列的元素,但不一定能够修改它们或通过索引直接访问它们。Swift 标准库中的许多集合类型,如数组(Array)、集合(Set)、字典的值()以及字符串(String),都遵循Sequence协议。

2024-03-22 18:41:24 697

原创 26. 删除有序数组中的重复项 (Swift版本)

给你一个 非严格递增排列 的数组 nums ,请你删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。然后返回 nums 中唯一元素的个数。

2024-03-22 01:16:41 290 1

原创 小心串行队列的执行依赖

iOS串行队列中任务的执行先后

2024-03-18 04:13:38 165

原创 27. 移除元素 (Swift版本)

解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。,它一定是输出数组的一个元素,我们就将右指针指向的元素复制到左指针位置,然后将左右指针同时右移;依然使用双指针,两个指针初始时分别位于数组的首尾,向中间移动遍历该序列。输入:nums = [3,2,2,3], val = 3。的元素,并返回移除后数组的新长度。

2024-03-18 01:09:11 504

原创 88. 合并两个有序数组 (Swift版本)

注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n。给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。

2024-03-14 19:55:45 451

原创 746. 使用最小花费爬楼梯 (Swift版本)

个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。

2024-03-08 19:31:48 637 1

原创 236. 二叉树的最近公共祖先 (Swift版本)

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。

2024-03-08 12:27:42 592

原创 寻找最近的公共父视图

循环嵌套迭代来查询最近的公共父视图, 时间复杂度。求两个视图的最近公共父视图。

2024-03-08 00:30:54 299

原创 为什么需要Promises ?

同步"异步操作", 避免Block多层嵌套造成的"回调地狱"

2023-07-12 01:04:47 146

原创 查找文件所在的具体位置

目标文件的名称, 支持使用通配符 * 和?$ find

2023-07-09 19:17:46 731

原创 NSError是什么 ?

0 意味着“一切正常退出;表示问题的本质, 多个 code 对应于一个特定的( particular )错误域,即此处的 domain, 这可以有效地避免重叠和混淆(overlap and confusion)。作为整个 Cocoa 的惯例,userInfo 是一个可以包含任意键值对的字典,无论是为了继承或降低耦合的目的, 它都不适合拿来填满各种杂七杂八的属性。相比于无可奈何地抛出异常,将这些信息包装在一个类似于 NSError 这样的对象中的优势在于,这些错误对象可以很容易的在不同对象及上下文中传递。

2023-04-06 18:58:11 440

原创 iPhone屏幕适配(之安全区)

译: 安全区域定义视图中未被导航栏、选项卡栏、工具栏或窗口或场景可能提供的其他视图覆盖的区域。安全区域对于避免设备的交互和显示功能至关重要,例如 iPhone 上的动态岛或某些 Mac 机型上的摄像头外壳。Tips: 从ios14开始有刘海屏的iPhone状态栏高度不一定是44了, 故之前判定是全面屏的相关宏将不再适用!

2023-03-29 23:32:05 1066

原创 日期相关需求速查备忘录 (Swift版本)

默认环境// The user’s current calendar. 日历默认为系统当前let cal = Calendar.current// 日历的 locale 为 nil 或者 Locale.currentcal.locale == nil// 日历的 timeZone 为 TimeZone.current (The time zone currently used by the system)cal.timeZone == TimeZone.currentDemand List

2023-03-29 22:45:16 62

原创 iPhone屏幕适配(之屏幕尺寸)

Device screen size 各设备屏幕尺寸DeviceDimensions (portrait)iPhone 14 Pro Max430x932 pt (1290x2796 px @3x)iPhone 14 Pro393x852 pt (1179x2556 px @3x)iPhone 14 Plus428x926 pt (1284x2778 px @3x)iPhone 14390x844 pt (1170x2532 px @3x)iPhone

2023-03-29 21:05:31 1509

原创 CoreLocation的一切

Core Location 提供的服务可以确定设备的地理位置、高度和方向,或者它相对于附近iBeacon设备的位置。该框架使用设备上的所有可用组件收集数据,包括 Wi-Fi、GPS、蓝牙、磁力计、气压计和蜂窝硬件。

2023-03-13 21:12:18 396

原创 215. 数组中的第K个最大元素 (Swift版本)

【代码】215. 数组中的第K个最大元素 (Swift版本)

2023-03-12 02:07:10 233

原创 iOS中Cell使用的标准附加控件(Swift版本)

基类UITableViewCell的accessoryType属性可以用来控制"标准附加控件"的类型

2023-03-11 18:59:12 610

原创 Swift中的Double转UInt32发生CRASH

译: 如果 source 在向零舍入后超出此类型的范围,则可能会发生运行时错误。

2023-03-08 15:15:37 429

原创 70. 爬楼梯 (Swift版本)

核心点在于: 最后一步可能跨了一级台阶,也可能跨了两级台阶, 故得到递推公式如下。

2023-03-01 23:35:28 106

原创 509. 斐波那契数 (Swift版本)

【代码】509. 斐波那契数 (Swift版本)

2023-03-01 22:23:12 76

原创 199. 二叉树的右视图 (Swift版本)

想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。输入: [1,2,3,null,5,null,4]输入: [1,null,3]输出: [1,3,4]

2023-02-26 18:27:25 57

原创 107. 二叉树的层序遍历 II (Swift版本)

输入:root = [3,9,20,null,null,15,7](即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)输出:[[15,7],[9,20],[3]]输入:root = [1]输入:root = []

2023-02-26 17:43:22 55

原创 102. 二叉树的层序遍历 (Swift版本)

(即逐层地,从左到右访问所有节点)。

2023-02-24 14:07:13 103

原创 51. N 皇后 (Swift 版本)

链接:https://leetcode.cn/problems/n-queens。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。解释:如上图所示,4 皇后问题存在两个不同的解法。的棋盘上,并且使皇后彼此之间不能相互攻击。来源:力扣(LeetCode)的棋子放置方案,该方案中。每一种解法包含一个不同的。分别代表了皇后和空位。输出:[[“Q”]]

2023-02-23 00:28:34 128

原创 来自 Google Play 的邮件 (关于服务条款更新)

Google 翻译: 这些更改使您更容易了解在使用我们的服务时对 Google Play 的期望。, 其中"expect from Google Play"表示"来自Google Play的期望".您已收到此强制性电子邮件服务公告,目的是让您了解 Google Play 服务条款的重要变更。update sb …Google Translate: 强制性电子邮件服务公告。的关系(网上的解释千奇百怪, 越看越懵😵‍💫),个人理解: 强制性的, 电子邮件形式的, 服务公告。是并列的, 动作的对象都是后面的。

2023-02-11 23:46:21 645

原创 876. 链表的中间结点(Swift实现)

ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = NULL.(测评系统对该结点序列化表述是 [3,4,5])。由于该列表有两个中间结点,值分别为 3 和 4,我们返回第二个结点。输出:此列表中的结点 3 (序列化形式:[3,4,5])输出:此列表中的结点 4 (序列化形式:[4,5,6])如果有两个中间结点,则返回第二个中间结点。输入:[1,2,3,4,5,6]输入:[1,2,3,4,5]...

2022-08-31 23:52:31 67

原创 初识pthread

//// main.c// POSIX Threads Playground for SQI//// Created by 侯仕奇 on 2022/4/20.//#include <stdio.h>#include <pthread.h>#include <stdlib.h>void *start(char *param) { printf("%s, running the background thread which address

2022-04-20 23:57:12 117

原创 怎样手动计算多行字符串的高度?

How to calculate multi-lines String’s height ?使用的具体方法extension NSString { @available(iOS 7.0, *) open func draw(with rect: CGRect, options: NSStringDrawingOptions = [], attributes: [NSAttributedString.Key : Any]? = nil, context: NSStringDrawingCo

2022-04-20 14:44:01 1425

原创 232. 用栈实现队列

题目请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:* void push(int x) 将元素 x 推到队列的末尾* int pop() 从队列的开头移除并返回元素* int peek() 返回队列开头的元素* boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:* 你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop fr

2022-04-17 18:04:59 60

Objective-C, Category, 实现分析, 源代码

Objective-C, Category, 实现分析, 源代码

2023-03-17

分类中添加属性_实例代码

分类中添加属性_实例代码

2016-11-21

fgets( )和fputs( )(建议用其完全代替gets和puts函数)

很早之前,本人开始接触C语言的时候整理的笔记,包含了函数fgets( )和fputs( )的总结和使用心得,以及与对应的无f前缀函数的区别分析,现在分享给大家,仅代表个人观点,由于能力有限,难免有纰漏,仅供学习交流.

2016-07-25

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

TA关注的人

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