[转载] 深入理解 OC/C++ 闭包

原文地址

背景

苹果的 Objective-C 编译器允许用户在同一个源文件里自由地混合使用 C++ 和 Objective-C,混编后的语言叫 Objective-C++。相对于其它语言(例如 Swift、Kotlin、Dart 等)和 C++的文件隔离和架桥通信(例如 Kotlin 使用 JNI,Dart 使用 FFI),Objective-C 和 C++的同文件混编方式无疑是令人舒畅的。OC/C++混编虽然可以在一个文件中进行编写,但是有一些注意事项需要解:Objective-C++没有为 OC 类增加 C++的功能,也没有为 C++增加 OC 的功能,例如:不能用 OC 语法调用 C++对象,也不能为 OC 对象增加构造函数和析构函数,也不能将this和self互相替换使用。类的体系结构是独立的,C++类不能继承 OC 类,OC 类也不能继承 C++类。

本文主要就之前令人困惑的 OC 的Block和 C++的 lambda 混编问题 做一些探索。

实验环境:C++版本为 C++14,OC 只局限于 ARC。

阅读全文 »

[转载] 移动端渲染原理浅析

转载: 原文地址

计算机或手机的渲染是一个非常复杂的过程,本文介绍了渲染相关的一些基础知识,并结合 iOS 和安卓的技术框架介绍了移动端渲染原理,最后详细的解析了 iOS 中的离屏渲染以及圆角优化的一些方法。

阅读全文 »

[转载] 从响应式编程到 Combine 实践

转载: 原文地址

大约一年前,Resso 接入了 Combine,利用响应式编程简化了代码逻辑,也积累了很多实践经验。本文会从响应式编程的基本思想并逐步深入介绍 Combine 的概念与最佳实践,
希望能帮助更多的同学顺利上手并实践响应式编程,少踩坑。

等等,Resso 是什么?Resso 来源于Resonate(共鸣),是字节跳动推出的一个社交音乐流媒体平台,专为下一代音乐发烧友设计,使他们能够通过对音乐的热爱来表达和与他人建立联系。

书回正文,所谓的响应式编程到底是什么呢?

熟悉 Combine 的同学可以直接跳到实践建议部分。

响应式编程

维基百科对响应式编程的定义是:

在计算中,响应式编程是一种面向数据流和变化传播的声明式编程范式。

虽然定义中每个字都认识,但连起来却十分费解。我们可以把定义中的内容分开来理解,逐个击破。首先,让我们来看下声明式编程。

阅读全文 »

[转载] 淘宝 APP 网络架构演进与弱网破障实践

转载: 原文地址

引言

自 2013 年 ALLIN 无线到今天,已经走过 10 个年头,手淘终端统一网络库 AWCN (Ali Wireless Connection Network) 从淘内孵化,一路过来伴随着手淘业务的发展,经历集团 IPv6 战役、协议升级演进等,逐步沉淀为阿里集团终端网络通用解决方案,是兼具高性能、多协议、可容灾、可观测的终端网络基础统一设施。面对移动互联网络下复杂多变的网络环境,如何提供更稳定可靠的请求性能,保障用户的加载浏览体验、更好的支撑业务发展,是我们始终探索的命题。

阅读全文 »

UITextView 模拟标签功能

需求需要实现一个 类似于微博文本中 标签的能力, 一般我们用 YYTextView 配合 YYTextParser 很容易可以写出来, 参考, 但是当我们必需需要用 UITextView 来实现的时候, 就很麻烦了, 因为 YYTextView 不是继承的 YYTextView, 他们是兄弟关系, 强行替换需要修改所有引用该文本的逻辑, 风险较大.
怎么基于 UItextView 实现一套标签能力呢?

阅读全文 »

Cocos小游戏开发-TypeScript

参考:

  1. 使用 TypeScript 脚本
  2. TypeScript 教程

TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个严格超集,并添加了可选的静态类型和基于类的面向对象编程。TypeScript 的设计目标是开发大型应用,然后转译成 JavaScript 运行。由于 TypeScript 是 JavaScript 的超集,任何现有的 JavaScript 程序都是合法的 TypeScript 程序。

阅读全文 »