首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
基础
订阅
SpikeLee
更多收藏集
微信扫码分享
微信
新浪微博
QQ
23篇文章 · 0订阅
月薪10K码农,跳槽到40K架构师,技术学习路线图汇总
前端、后端、运维,如果你不清楚自己要从哪开始,下个阶段要学什么,到哪里算是结束,可以参考下 Kamran Ahmed 整理的 Web 开发者 2021 版最新的学习路线图。
面试官: 既然已经有数组了,为什么还要链表
对于不少开发者而言,链表(linked list)这种数据结构既熟悉又陌生,熟悉是因为它确实是非常基础的数据结构,陌生的原因是我们在业务开发中用到它的几率的确不大. 链表是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指…
聊聊iOS中的多继承和多重代理
类B和C分别继承自A,B1和B2继承自B,C1和C2继承自C.现在我们需要在B1和C1中添加相同的方法,怎么去做?使用继承的话只能在类A中添加,但这样做的结果是基类A会越来越臃肿,最后变成上帝类God Class,维护起来会很困难. 在实现完某个代理后发现,我们还要在其他页面中…
Message Loop 原理及应用
此文已由作者王荣涛授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 Message loop,即消息循环,在不同系统或者机制下叫法也不尽相同,有被叫做event loop,也有被叫做run loop或者其他名字的,它是一种等待和分派消息的编程结构,是经典…
理清 Block 底层结构及其捕获行为
Block 的本质是一个 Objective-C 对象,它内部也拥有一个 isa 指针。 Objective-C 中 Block 有三种类型,其最终类型都是 NSBlock 。 捕获全局基础类型变量生成的结构体 struct __main_block_impl_0 没有包含 a…
优化 iOS 项目编译时间
随着项目越来越大,编译时长也会越来越长。那么编译的优化就必不可少了。 在 xcode 的编译 log 可以查看时长,也可以查看总时长,每一个 文件的编译时长。 在 xcode => build settings => Other Swift Flags 添加下面设置,可以看到 …
[译] Swift 中的惰性序列及其原理
使用 map 和 filter 这样的高阶函数在 Swift 项目中非常常见,因为它们是简单的算法,能让你将复杂的想法转化为简单的单行函数。不幸的是,它们没能解决所有的问题 — 至少在它们的默认实现中没能解决。高阶函数是非常急迫的:它们使用闭包立即返回一个新的数组,不论你是否需…
iOS 代码 lint 自动化试水
对于已经搭建CI开发环境的团队来说,代码规范管理必然会成为团队协作的基石。但人工的CodeReview中加入格式及规范检查会存在如下问题 针对以上问题,代码lint概念诞生。 相比其他技术,代码lint其实由来已久。维基百科解释,lint 作为一种工具程序,主要负责静态源码分析…
iOS程序员的自我修养-编译、链接过程(一)
OC是用Clang/LLVM来编译的。接下来我将用clang来展开整个过程。main.m文件源码如下: 平时用Xcode去Build,一键从源码到程序。这个过程中隐藏了预处理、编译、汇编和链接4个过程如下: 处理源代码文件中的以"#"开头的预编译指令。规则如下: "#defin…
Swift 类型擦除
你也许曾听过类型擦除,甚至也使用过标准库提供的类型擦除类型如 AnySequence。但到底什么是类型擦除? 如何自定义类型擦除? 在这篇文章中,我将讨论如何使用类型擦除以及如何自定义。在此感谢 Lorenzo Boaro 提出这个主题。 有时你想对外部调用者隐藏某个类的具体类…