- 博客(24)
- 资源 (18)
- 收藏
- 关注
原创 flutter boost
# 第二章、构建基于flutter的混合应用## 2.2常见的原生解决方案##### 2.2.1 flutter boost演进''0.0 双引擎利用AB两个引擎,对界面进行预加载解决flutterVC切换时,加载时间长的问题1.0 共享视图将页面通过key:value的形式进行存储,减少放回页面时的视图构建时间内存只存两个截图,其余存磁盘解决平级flutterVC页面切换,(会被栈顶丢出去)状态丢失的问题2.0 共享引擎将VC与引擎相关联,使flutterVC与app生命周期捆
2022-03-05 10:02:08 4929
原创 flutter组件化调研
# 一、组件化接入方式跟原生组件化类似,共有两种方式接入:pod和framework怎么配置flutter环境,flutter官网上讲得很详细了,不在累赘了## 1.以pod的方式接入 1.创建一个flutter_module```flutter create -t module flutter_module```![WX20220303-103123@2x.png](https://upload-images.jianshu.io/upload_images/3355903-f99...
2022-03-03 20:44:46 2137
原创 2022年iOS面试题简答题
级别方面:iOS中级:基础70%,底层原理20%,架构10%iOS高级:基础10%,底层原理50%,架构20%,算法20%iOS架构:底层原理50%,架构20%,算法20%,手写算法10%iOS专家:底层原理20%,架构20%,算法40%,手写算法20%总的来说就是:中级偏向运用,会不会使用,怎么使用,有没有使用过。高级偏向底层原理,底层是怎么实现的,你在哪里使用过架构偏向为什么这么设计(这样设计解决了什么问题,又出现了什么新的问题)一般都是第三方框架,比如ASI和AFN,http2.0和
2022-03-03 10:16:27 3361
翻译 UIWebView体系结构(一)概貌
UIWebView属于UIKit,封装了WebKit.framework的WebView;WebView组合管理了WebCore.framework的Page,并提供了各种Clients;Page管理了Main Frame,Main Frame管理了sub Frame(FrameTree)。UIWebView层(点击图片查看全图):WebView层(点击图片查看全图):
2016-08-19 17:44:51 352
翻译 Objective-C Runtime 运行时之六:拾遗
前面几篇基本介绍了runtime中的大部分功能,包括对类与对象、成员变量与属性、方法与消息、分类与协议的处理。runtime大部分的功能都是围绕这几点来实现的。本章的内容并不算重点,主要针对前文中对Objective-C Runtime Reference内容遗漏的地方做些补充。当然这并不能包含所有的内容。runtime还有许多内容,需要读者去研究发现。super在Objectiv
2016-08-19 17:44:00 398
翻译 Objective-C Runtime 运行时之五:协议与分类
Objective-C中的分类允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到。Objective- C中的协议是普遍存在的接口定义方式,即在一个类中通过@protocol定义接口,在另外类中实现接口,这种接口定义方式也成为 “delegation”模式,@protocol声明了可以呗其他任何方法类实现的方法,协议
2016-08-19 17:43:40 223
翻译 Objective-C Runtime 运行时之四:Method Swizzling
理解Method Swizzling是学习runtime机制的一个很好的机会。在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文。Method Swizzling是改变一个selector的实际实现的技术。通过这一技术,我们可以在运行时通过修改类的分发表中selector对应的函数,来修改方法的实现。例 如,我们想跟踪在程序中
2016-08-19 17:43:24 312
翻译 Objective-C Runtime 运行时之三:方法与消息
前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理。这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制。我们将详细讨论消息的发送及消息的转发。不过在讨论消息之前,我们先来了解一下与方法相关的一些内容。基础数据类型SELSEL又叫选择器,是表示一个方法的selector的指针,其定义如下:typedef struct objc_selec
2016-08-19 17:42:54 477
翻译 Objective-C Runtime 运行时之二:成员变量与属性
在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现。本章的主要内容将聚集在Runtime对成员变量与属性的处理。在讨论之前,我们先介绍一个重要的概念:类型编码。类型编码(Type Encoding)作 为对Runtime的补充,编译器将每个方法的返回值和参数类型编码为一个字符串
2016-08-19 17:42:30 931
翻译 Objective-C Runtime 运行时之一:类与对象
Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。这 种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时系统就像一 个操作系统一样:它让所有的
2016-08-19 17:42:01 484
原创 WWDC15 Session笔记 - 30 分钟开发一个简单的 watchOS 2 app
Apple Watch 和 watchOS 第一代产品只允许用户在 iPhone 设备上进行计算,然后将结果传输到手表上进行显示。在这个框架下,手表充当的功能在很大程度上只是手机的另一块小一些的显示器。而在 watchOS 2 中,Apple 开放了在手表端直接进行计算的能力,一些之前无法完成的 app 现在也可以进行构建了。本文将通过一个很简单的天气 app 的例子,讲解一下 watchOS 2
2015-09-14 15:43:31 911
转载 iOS标准时间与时间戳相互转换
[cpp] view plaincopy设置时间显示格式: NSString* timeStr = @"2011-01-26 17:40:50"; NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease]; [formatter set
2015-09-11 10:28:28 299
原创 NSDate 时间比较
由 NSDate 转换为 NSString:NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];NSString *strDate = [dateFormatter stringFromDate:[
2015-09-10 17:52:41 1147
原创 日期和日期相减
//实例化一个NSDateFormatter对象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //设定时间格式,这里可以设置成自己需要的格式 [dateFormatter setDateFormat:@"yyyyMMdd"];NSDate *toDate = [formater
2015-09-10 09:24:44 394
原创 微信支付
文档说明术语支付账户接口规则APP支付场景介绍案例介绍业务流程API详细说明APP端开发步骤API列表API列表SDK下载首页APP支付APP端开发步骤说明1.IOS开发要点说明以下项目开发环境以Xcode10.0,运行环境为IOS7.0为例,说明其开发中需要的操作。1)项目设置
2015-09-10 09:22:44 779
原创 ALAsset,ALAssetsLibrary,ALAssetsgroup常见属性及用法
ALAssetsgroup--------------------------------------------------------------------------- Enumerating Assets(遍历资源)– enumerateAssetsUsingBlock:(用一个block来遍历组里的资源)– enumerateAssetsWithO
2015-08-03 17:54:37 398
转载 简单介绍以下几个宏: 1
简单介绍以下几个宏:1) __VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉,否则会编译出错。2) __FILE__ 宏在预编译时会替换成当前的源文件名3) __LINE__宏在预编译时会替换成当前的行号4
2015-04-04 14:42:06 467
转载 声明和创建Blocks 3.1 声明一个block的引用
Block 变量拥有 blocks 的引用。你可以使用和声明函数指针类似的语法来声明它 们,除了它们使用 ^修饰符来替代 * 修饰符。Block 类型可以完全操作其他 C 系统 类型。以下都是合法的 block声明: void (^blockReturningVoidWithVoidArgument)(void); int (^blockReturning
2015-04-04 14:42:04 440
原创 谓词NSPredicate
NSMutableArray *array = [[NSMutableArray alloc]init]; for (int i = 0 ; i Person *person = [[Person alloc]init]; if (i person.name = [NSString st
2015-04-04 14:41:00 403
转载 OC学习笔记
一、OC简介> C语言的基础上,增加了一层最小的面向对象语法> 完全兼容C语言> 可以在OC代码中混入C语言代码,甚至是C++代码> 可以使用OC开发Mac OS X平台和iOS平台的应用程序 二、OC语法预览1. 关键字> 基本上所有关键字都是以@开头> 下面列举一些常见的关键字,看一眼就行了,不用去翻资料查找它们的含义@interface、@impl
2015-04-04 14:40:18 515
转载 日期和日期相减
//实例化一个NSDateFormatter对象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //设定时间格式,这里可以设置成自己需要的格式 [dateFormatter setDateFormat:@"yyyyMMdd"];NSDate *toDate = [formater
2015-04-04 14:38:55 661
转载 使用GTMBase64编码解码字符串
#import "GTMBase64.h"- (void)testExample{ NSData *data = [@"HelloWorld" dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; NSString* encoded = [[NSString alloc] initWith
2015-04-04 14:37:04 789
转载 为什么不能上Facebook?
你要到中国做生意,你就必须把店开到中国,把服务器放在中国,这就是治权,治理的权利,这在那一个国家都不例外。美国人办的公司咋了?到中国就的尊重中国的治权。 广州日报:中国的Facebook为什么非死不可 有个《Facebook在中国为何会沦为“非死不可”》贴子,说在中国照抄Facebook没戏,最终只能沦为“非死不可”。大致上我同意他的结论,却不同意他得出结论的
2015-03-16 15:40:00 840
OATH标准OTP算法
2017-12-12
IStreamContract
2017-06-01
springside4.3.0.zip
2016-10-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人