Snaith
码龄5年
关注
提问 私信
  • 博客:18,870
    动态:35
    18,905
    总访问量
  • 32
    原创
  • 1,600,945
    排名
  • 5
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2019-12-14
博客简介:

weixin_46024722的博客

查看详细资料
个人成就
  • 获得1次点赞
  • 内容获得3次评论
  • 获得18次收藏
创作历程
  • 32篇
    2020年
成就勋章
TA的专栏
  • iOS 报错
    1篇
  • iOS错误
  • CocoaPods
    2篇
  • Golang
    11篇
  • iOS面试题
    17篇
兴趣领域 设置
  • 移动开发
    flutterreact native
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

352人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

面试算法被虐了…

发布动态 2020.08.24

领取花名

发布动态 2020.08.17

iOS - 提审报错 ITMS-90809: Deprecated API Usage - UIWebView

iOS 提审时,收到回复邮件:ITMS-90809: Deprecated API Usage - Apple will no longer accept submissions of new apps that use UIWebView as of April 30, 2020 and app updates that use UIWebView as of December 2020. Instead, use WKWebView for improved security and reliabi
原创
发布博客 2020.06.06 ·
1099 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

iOS - pod package 把私有库打包为 framework

1. 安装 cocoapods-packager如果没有安装 cocoapods-packager ,可以使用如下命令安装:$ gem install cocoapods-packager2. podspec文件的内容结构## Be sure to run `pod lib lint ASDK.podspec' to ensure this is a# valid spec before submitting.## Any lines starting with a # are optio
原创
发布博客 2020.06.04 ·
3583 阅读 ·
1 点赞 ·
2 评论 ·
2 收藏

Golang 学习 - UDP通信

UDP 服务端// 1. 组织一个 UDP 地址结构,指定服务器的 IP + portsvcAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:8003")if err != nil { fmt.Println("ResolveUDPAddr err:", err) return}fmt.Println("udp 服务器地址结构,创建完成。")// 2. 创建用于通信的 sokcet ,绑定地址结构udpConn, err := ne..
原创
发布博客 2020.05.19 ·
843 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Golang 学习 - 互斥锁

互斥锁(互斥量)A、B go 程共同访问共享数据,由于 CPU 调度机制,需要对共享数据访问顺序加以限定(同步)。创建 mutex (互斥锁),访问共享数据之前,加锁;访问结束,解锁。在 A go 程加锁期间,B go 程加锁会失败。(阻塞)直至 A go 程解锁后,B go 程才能从阻塞处恢复执行。// 创建一个互斥锁,新建的互斥锁状态为 0 ,表示未加锁。锁只有一把。var...
原创
发布博客 2020.05.05 ·
211 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Golang 学习 - 死锁

单 go 程自己死锁func main() { ch := make(chan int) // 向 channel 中写数据,写完后就会阻塞,等待读数据 ch <- 123 // 由于上边已经阻塞,所以下边代码没来得及执行,造成死锁 num := <-ch fmt.Println("num = ", num)}结论:channel 应该在至少 2 个以上的 ...
原创
发布博客 2020.05.05 ·
207 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Golang 学习 - select

作用:用来监听 channel 上的数据流动方向。( 读? 或 写?)用法:参考 switch case 语句语法。但是!case 后边必须是 IO 操作,不可以任意写判别表达式。注意事项:监听的 case 中,如果没有满足监听条件,则阻塞。监听的 case 中,如果有多个监听条件满足,则任选一个执行(因为需要争夺时间轮片)。可以使用 default 来处理所有 case ...
原创
发布博客 2020.05.05 ·
207 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Golang 学习 - 定时器

普通定时器Timer 定时器结构体:type Timer struct { C <-chan Time r runtimeTimer}time.NewTimer()创建定时器,指定定时时长,定时到达后,系统会自动向定时器的成员 C 写系统当前时间(对 chan 的写操作)。读取 Timer.C 得到定时后的系统时间,并且完成一次 chan 的读操作。tim...
原创
发布博客 2020.05.05 ·
228 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Golang 学习 - channel

channel 的定义channel 是一种数据类型。对应一个“管道”(FIFO)make(chan 在channel中传递的数据类型, 容量)容量 = 0 ,表示是无缓冲 channel (如果不设置,默认为 0)容量 > 0 ,表示是有缓冲channel例如:chint := make(chan int)chstring := make(chan string, 0...
原创
发布博客 2020.05.04 ·
231 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Golang 学习 - Goroutine

创建 Goroutine创建于进程中,直接使用 go 关键字,放置于函数调用前面。例如:go test() //并发执行Goroutine 的特性主 go 程结束,子 go 程随之退出。runtime.Gosched()出让当前 go 程所占用的 CPU 时间片;随后从出让位置继续恢复执行。runtime.Goexit()结束调用该函数的当前 go 程。在 ...
原创
发布博客 2020.05.04 ·
139 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Golang 学习 - 文件

创建文件 Create文件不存在就创建,存在则将文件内容清空。参数:name (文件的路径:绝对路径、相对路径)目录分隔符:/打开文件 Open以只读方式打开文件,文件不存在,则打开失败。参数:name (文件的路径:绝对路径、相对路径)打开文件 OpenFile以只读、只写、读写方式打开文件,文件不存在,则打开失败。参数1:name (文件的路径:绝对路径、相对路径...
原创
发布博客 2020.05.03 ·
172 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Golang 学习 - 结构体

结构体定义结构体是一种数据类型。// 定义类型(地位等价于 int/byte/bool/string... )// 通常放在全局位置type Person struct { name string sex byte age int}注意: 结构体内不能赋初值,不能用 var 修饰。普通变量定义和初始化顺序初始化:依次将结构体内部所有成员初始化。var man Pe...
原创
发布博客 2020.04.29 ·
174 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Golang 学习 - 切片

为什么使用切片?数组的容量固定,不能自动拓展。值传递。因为数组作为函数参数时,将整个数组值拷贝一份给形参,内存消耗大,效率低。在 Go语言中,我们几乎可以在所有场景中,使用切片替换数组来使用。切片的本质: 不是一个数组的指针,而是一种数据结构体,用来操作数组内部元素。切片的使用:切片与数组定义区别:– 创建数组时,[2] 指定数组长度。– 创建切片时,[] 为空,或者 […...
原创
发布博客 2020.04.25 ·
170 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Golang 学习 - 指针

指针: 就是地址。指针变量: 就是存储地址的变量。*p: 解引用、间接引用。栈帧:用来给函数运行提供内存空间(取内存于 stack 上)。当函数调用时,产生栈帧;函数调用结束时,释放栈帧。栈帧存储:局部变量、形参、内存字段描述值。(形参与局部变量存储地位等同)指针使用注意:空指针:未被初始化的指针。例如:var p *int野指针:被一片无效的地址空间初始化。格式化输出...
原创
发布博客 2020.04.25 ·
404 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

iOS面试 - 蓝牙的基本使用

在 iOS 中,蓝牙是基于 4.0 标准的,设备间低功耗通信。其中 Peripheral 外设相当于 Socket 编程中的 Server 服务端,Central 中心相当于 Client 客户端。本地中心 -> 远程外设本地外设 -> 远程中心使用流程:建立中心角色 —> 扫描外设(discover)—> 发现外设后连接外(connect) —> 扫描外设...
原创
发布博客 2020.04.25 ·
2121 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

iOS面试 - UITableView 性能优化

一. cellForRowAtIndexPath:我们经常在注意 cellForRowAtIndexPath :中为每一个 cell 绑定数据,实际上在调用cellForRowAtIndexPath:的时候 cell 还没有被显示出来,为了提高效率我们应该把数据绑定的操作放在 cell 显示出来后再执行,可以在tableView:willDisplayCell:forRowAtIndexPa...
原创
发布博客 2020.04.19 ·
406 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

iOS面试 - 加密之时间戳密码(用户密码动态变化)

时间戳密码: 相同的密码明文 + 相同的加密算法,每次计算都得出不同的结果,可以充分保证密码的安全性。原理:将当前时间加入到密码中;因为每次登陆时间都不同,所以每次计算出的结果也都不相同;服务器也需要采用相同的算法,这就需要服务器和客户端时间一致。注意: 服务器端时间和客户端时间,可以有一分钟的误差(比如:第 59S 发送的网络请求,一秒钟后服务器收到并作出响应,这时服务...
原创
发布博客 2020.04.02 ·
534 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

iOS面试 - 消息认证码算法 HMAC

HMAC (Message Authentication Code,消息认证码算法) :利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。HMAC 主要使用在身份认证中,认证流程如下:客户端向服务器发送一个请求;服务器接收到请求后,生成一个“随机数”并通过网络传输给客户端;客户端将接收到的“随机数”和“密钥”进行 HMAC-MD5 运算,将得到的结果作为认证数据传递给服...
原创
发布博客 2020.04.02 ·
400 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

iOS面试 - MD5(信息摘要)哈希算法

把一个任意长度的字节串变换成一定长度的十六进制的大整数,用于确保“信息传输”完整一致。注意: 字符串的转换过程是不可逆的。MD5 特点:压缩性: 任意长度的数据,算出的 MD5 值长度都是固定的;容易计算: 从原数据计算出 MD5 值很容易;抗修改性: 对原数据进行任何改动,哪怕只修改一个字节,所得到的 MD5 值都有很大区别;弱抗碰撞: 已知原数据和其 MD5 值,想找到一个具有相...
原创
发布博客 2020.04.02 ·
258 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多