首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
篝火者Cat
掘友等级
iOS开发工程师
金牌铲屎官一枚~
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
52
文章 52
沸点 0
赞
52
返回
|
搜索文章
最新
热门
ES6 事件循环机制
每次当控制器转到可执行代码的时候,就会进入一个执行上下文。执行上下文可以理解为当前代码的执行环境,它会形成一个作用域。 因此在一个JavaScript程序中,必定会产生多个执行上下文,JavaScript引擎会以函数调用栈的方式来处理它们。栈底永远都是全局上下文,而栈顶就是当前…
ES6 块级绑定
使用 var 关键字声明的变量,无论其实际声明位置在何处,都会被视为声明于所在函数的顶部,如果声明不在任意函数内,则视为在全局作用域的顶部。 如果你不太熟悉 JS ,或许会认为仅当 condition 的值为 true 时,变量 value 才会被创建。但实际上,value 无…
编写高质量iOS有效方法总结(一)
Objective-C 是 C 的 “超集”,所以 C 语言中的所有功能在编写 Objective-C 代码时依然适用。 Objective-C 使用“消息结构”而非“函数调用”。 在运行时编译器不关心接收消息的对象是何种类型,接收消息的对象问题也要在运行时处理,这个过程叫做“…
swift 中的 lazy
延迟加载是初始化很常用的性能优化方式,尤其是在一些对象的属性十分复杂的时候,默认全部初始化会耗费不少时间,影响性能。还有一些特定环境下才使用的对象,更是浪费资源。所以有些时候我们并不会立刻用到一个对象或者一个对象的所有属性,使用延迟加载可以提升性能。 所谓延迟加载就是在第一次访…
swift 中的 @UIApplicationMain
C 系列语言中,程序的入口都是 main 函数,一个 Objective-C 的 iOS app 项目在新建时,Xcode 会给我们创建好一个 main.m 的文件。 我们调用了 UIKit 的 UIApplicationMain 方法,这个方法根据第三个参数初始化一个 UIA…
Swift 3.0之后实现Dispatch once扩展
官方说我们可以使用懒加载初始化的全局变量或静态属性,也可以得到类似 dispatch_once 提供的线程安全的实现方案,但是有些时候使用这种方式意义不大。 通过使用 token 作为唯一标识 执行 once 方法时通过加锁避免多线程下的 token 值不确定的情况。像这样调用…
iOS中的“锁事”
setter / getter 被 atomic 修饰的属性时,该属性是读写安全的。然而读写安全并不代表线程安全。 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者…
swift 中的 ??
空合运算符,当然这个运算符并不是 swift 首创,早在 C#,Perl,PHP7.0.0 等均有此运算符。 这是一个非常有用而且常用的操作符,可以用来快速对 nil 进行条件判空,使代码看起来更加简洁。 事实上 a ?? b 表示将对可选类型a进行为空判断,如果a包含一个值,…
swift 存放多类型的容器
但如果想要把不同的类型放在同一个容器中我们可以使用 Any。 这样将数组类型定义成 Any 之后我们可以将任意类型添加进数组,也可以从数组中取出的值转换成任意类型。但这样做是十分危险的,取值时一旦类型转换错误再调用该类型的方法后就容易造成不必要的 crash 。 如果确实存在这…
swift 自定义正则表达式运算符 =~
swift 至今并没有在语言层面上支持正则表达式,可能在开发app时正则表达式使用的场景并不多。 在 Cocoa 中我们可以使用 NSRegularExpression 来做正则匹配,所以我们在 NSRegularExpression 的基础上封装一个 RegularExpHe…
下一页
个人成就
文章被点赞
213
文章被阅读
82,744
掘力值
1,587
关注了
6
关注者
703
收藏集
1
关注标签
27
加入于
2017-12-14