获得徽章 0
赞了这篇沸点
What’s new in RxSwift 5
- 将 Relay 拆分成一个独立的框架 -- RxRelay
- Variable 最终被弃用
- 新增 do(on:) 重载
- bind(to:) 现在支持多个观察者
- 一个新的 compactMap 操作符
- toArray() 现在返回 Single
- 泛型约束命名整理
- 将 Relay 拆分成一个独立的框架 -- RxRelay
- Variable 最终被弃用
- 新增 do(on:) 重载
- bind(to:) 现在支持多个观察者
- 一个新的 compactMap 操作符
- toArray() 现在返回 Single
- 泛型约束命名整理
展开
评论
2
#iOS知识小集#「 Xcode文件顺序错乱小技巧 」
有时候对Xcode的中的文件重新导入后,会导致 .h 和 .m 文件不在一起,整个文件顺序都乱了,如图 1 所示:
其实Xcode提供了一种简单的方法,可以让这些文件回归到正确的位置,选中某个目录下的文件,按图中的方法,执行即可,如图2所示:
执行完后,文件就会按照正确的位置显示了。
有时候对Xcode的中的文件重新导入后,会导致 .h 和 .m 文件不在一起,整个文件顺序都乱了,如图 1 所示:
其实Xcode提供了一种简单的方法,可以让这些文件回归到正确的位置,选中某个目录下的文件,按图中的方法,执行即可,如图2所示:
执行完后,文件就会按照正确的位置显示了。
展开
评论
2
#iOS知识小集#「 Xcode 模拟器开启全屏模式的两种方式 」
之前 Xcode 的模拟器不支持全屏模式,导致如果我们在 Xcode 全屏模式下编辑调试代码时,经常需要两个窗口来回切换。
从 Xcode 9 开始,模拟器也支持全屏模式了,可以在一个全屏窗口下同时打开 Xcode 和 Simulator,如图 1 所示。不过它默认是关闭的,我们可以通过如下两种方式开启。
* 方式一,在终端执行如下命令并重启模拟器即可:
defaults write com.apple.iphonesimulator AllowFullscreenMode -bool YES
* 方式二,在系统根目录下创建 /AppleInternal 目录:
(1)在终端执行 csrutil status 判断系统 SIP 状态,如果是已经关闭状态,则直接跳到第 3 步,否则通过如下步骤来关闭;
(2)重启 Mac 并按住 ⌘ CMD + R 直到进入 Recovery 模式,然后在屏幕上方菜单栏中找到“实用工具”,打开终端并执行 csrutil disable,最后重启 Mac,确认 SIP 已成功关闭;
(3)在终端执行 sudo mkdir /AppleInternal,如果出现 Operation not permitted 错误,请检查系统 SIP 状态是否关闭;
(4)打开 Xcode 模拟器,就可以在其菜单栏看到一个新的 Internal 选项,如图 2 所示,我们需要勾选 Allow Fullscreen Mode。
最后,通过上述方式开启模拟器的全屏模式后,我们就可把模拟器与 Xcode 拖拽到同一个全屏窗口了。
t.cn
之前 Xcode 的模拟器不支持全屏模式,导致如果我们在 Xcode 全屏模式下编辑调试代码时,经常需要两个窗口来回切换。
从 Xcode 9 开始,模拟器也支持全屏模式了,可以在一个全屏窗口下同时打开 Xcode 和 Simulator,如图 1 所示。不过它默认是关闭的,我们可以通过如下两种方式开启。
* 方式一,在终端执行如下命令并重启模拟器即可:
defaults write com.apple.iphonesimulator AllowFullscreenMode -bool YES
* 方式二,在系统根目录下创建 /AppleInternal 目录:
(1)在终端执行 csrutil status 判断系统 SIP 状态,如果是已经关闭状态,则直接跳到第 3 步,否则通过如下步骤来关闭;
(2)重启 Mac 并按住 ⌘ CMD + R 直到进入 Recovery 模式,然后在屏幕上方菜单栏中找到“实用工具”,打开终端并执行 csrutil disable,最后重启 Mac,确认 SIP 已成功关闭;
(3)在终端执行 sudo mkdir /AppleInternal,如果出现 Operation not permitted 错误,请检查系统 SIP 状态是否关闭;
(4)打开 Xcode 模拟器,就可以在其菜单栏看到一个新的 Internal 选项,如图 2 所示,我们需要勾选 Allow Fullscreen Mode。
最后,通过上述方式开启模拟器的全屏模式后,我们就可把模拟器与 Xcode 拖拽到同一个全屏窗口了。
展开
评论
3
赞了这篇文章
#iOS知识小集#「 获取App冷启动所耗时长 」
在App性能优化中,有一块就是启动时间的优化。那如何获取App冷启动所需要的时间呢?
找到 Edit scheme -> Run -> Auguments 将环境变量 DYLD_PRINT_STATISTICS 设为 1,如图一,然后运行。
运行后,能看到控制台打印出日志。如图二。可以看到在进入 main() 函数之前,一共耗时452.61ms。并且列举了加载比较慢的文件。
把DYLD_PRINT_STATISTICS改成DYLD_PRINT_STATISTICS_DETAILS后运行,能打印出更加详细的日志,如图三。
最后推荐一个代码耗时打点计时器:
t.cn,可以记录SDK加载时间、广告页加载时间、首页加载时间等等。
在App性能优化中,有一块就是启动时间的优化。那如何获取App冷启动所需要的时间呢?
找到 Edit scheme -> Run -> Auguments 将环境变量 DYLD_PRINT_STATISTICS 设为 1,如图一,然后运行。
运行后,能看到控制台打印出日志。如图二。可以看到在进入 main() 函数之前,一共耗时452.61ms。并且列举了加载比较慢的文件。
把DYLD_PRINT_STATISTICS改成DYLD_PRINT_STATISTICS_DETAILS后运行,能打印出更加详细的日志,如图三。
最后推荐一个代码耗时打点计时器:
展开
评论
2
赞了这篇沸点
关于 Xcode 10 New Build System,你需要了解的 5 件事
评论
3
#iOS知识小集#「 Xcode10 Snippets 」
升级 Xcode10 之后,会发现以前在 Inspector 栏右下角里的 Snippets 不见了,原来是 Xcode 把它单独拎到 toolbar 上了,或者可以使用快捷键 cmd+shift+l将其呼出,也可以直接点击 toolbar 上对应的按钮,如图1所示(图片比较大,流量慎点)。图中依次演示了直接点击 toolbar 以及快捷键的方式,最后一个将 snippets library 弹窗变成常驻的操作为 option + 点击 toolbar 的按钮。
由于单独成了一个弹窗,所以现在创建、编辑、删除 snippet 的操作也发生了变化。创建的话和之前类似,选中代码片段,然后右键菜单选中 Create Code Snippet 即可。如果要用拖拽的方式创建,需要将 library 弹窗常驻。编辑已有 snippet 的操作是选中某条 snippet,然后可能会延迟1秒左右出现一个弹窗,然后自行编辑即可,删除则为选中之后直接按 delete 键即可。
另外一些常用的代码片段可以直接在 GitHub 上找,比如
github.com、
github.com
也如果你也有自己收藏已久的代码片段,可以和我们一起分享。
升级 Xcode10 之后,会发现以前在 Inspector 栏右下角里的 Snippets 不见了,原来是 Xcode 把它单独拎到 toolbar 上了,或者可以使用快捷键 cmd+shift+l将其呼出,也可以直接点击 toolbar 上对应的按钮,如图1所示(图片比较大,流量慎点)。图中依次演示了直接点击 toolbar 以及快捷键的方式,最后一个将 snippets library 弹窗变成常驻的操作为 option + 点击 toolbar 的按钮。
由于单独成了一个弹窗,所以现在创建、编辑、删除 snippet 的操作也发生了变化。创建的话和之前类似,选中代码片段,然后右键菜单选中 Create Code Snippet 即可。如果要用拖拽的方式创建,需要将 library 弹窗常驻。编辑已有 snippet 的操作是选中某条 snippet,然后可能会延迟1秒左右出现一个弹窗,然后自行编辑即可,删除则为选中之后直接按 delete 键即可。
另外一些常用的代码片段可以直接在 GitHub 上找,比如
也如果你也有自己收藏已久的代码片段,可以和我们一起分享。
展开
评论
2
和老邓相识是2015年,当时我们俩一起面试民生银行同一个项目组……面完后我问他感觉怎样,他指了指随身带的两本《深入理解Android》,淡然地说:没啥,我写的这两本书放那,就随便聊了一下……我当时就跪了……后来我去了百度,就这样错过了和大神共事的机会……最近他又写了本书《深入理解Android JVM ART》,
,简直了……
这篇文章虽然是写android,但很多东西都是共通的,对具体知识的掌握并不是关键,更重要的是思考问题的方式和方法
这篇文章虽然是写android,但很多东西都是共通的,对具体知识的掌握并不是关键,更重要的是思考问题的方式和方法
展开
1
8
赞了这篇文章
赞了这篇沸点
如果能将用户从 H5 -> APP 的流程进行打磨,将体验进行优化,就能极大程度的提高拉新的转化率,而这其中的关键就是打破 H5 -> APP 之间传递数据,进行无缝衔接的方式。
评论
4
赞了这篇文章
赞了这篇沸点
杨帝的 BlockHook 已支持 macOS 和 iOS 平台全架构、tvOS 和 watchOS 模拟器
评论
4
AppHost 是一套解决 H5 和 native 协作开发的整体框架和服务。试图解决 native 和 H5 目前迭代频繁、时间仓促造成质量不高,业务膨胀后代码混乱,两端联调困难,多端协作彼此割裂等痛点。
评论
点赞