- 博客(34)
- 收藏
- 关注
原创 ios jwttoken解析swift
使用以下代码即可func decode(jwtToken jwt: String) -> [String: Any] { let segments = jwt.components(separatedBy: ".") return decodeJWTPart(segments[1]) ?? [:] } func base64UrlDecode(_ value: String) -> Data? { var base64 = value.
2021-07-22 09:54:19
632
1
原创 iOS 2020年最新屏幕尺寸(pt 、px)
机型发布时的系统屏幕英寸ptpxiPhone4iOS43.5英寸320 * 480pt960x640iPhone4SiOS 53.5英寸320 * 480pt960x640iPhone5iOS 64英寸320 * 568pt1136x640iPhone5C / 5SiOS 74英寸320 * 568pt1136x640iPhone6iOS 84.7英寸375 * 667pt1334x750iPhone6Pl...
2020-11-18 15:20:33
2061
原创 Flutter key localKey globalKey 深入理解
1. 什么是key您可以使用key来控制框架将在widget重建时与哪些其他widget匹配。默认情况下,框架根据它们的runtimeType和它们的显示顺序来匹配。使用key时,框架要求两个widget具有相同的key和runtimeType。Widget 更新机制下面来来看Widget的源码。@immutableabstract class Widget extends Diag...
2019-11-21 15:21:22
1936
1
原创 Flutter Widget框架及演示
介绍Flutter Widget采用现代响应式框架构建,这是从 React 中获得的灵感,中心思想是用widget构建你的UI。 Widget描述了他们的视图在给定其当前配置和状态时应该看起来像什么。当widget的状态发生变化时,widget会重新构建UI,Flutter会对比前后变化的不同, 以确定底层渲染树从一个状态转换到下一个状态所需的最小更改。Flutter应用本身就是一个widge...
2019-11-18 16:11:29
337
转载 Dart语言语法简介
Dart语言简介Dart的设计目标应该是同时借鉴了Java和JavaScript。Dart在静态语法方面和Java非常相似,如类型定义、函数声明、泛型等,而在动态特性方面又和JavaScript很像,如函数式特性、异步支持等。除了融合Java和JavaScript语言之所长之外,Dart也具有一些其它具有表现力的语法,如可选命名参数、…(级联运算符)和?.(条件成员访问运算符)以及??(判空赋值...
2019-11-14 15:12:26
421
原创 flutter 扫盲篇之创建第一个flutter应用(iOS flutter)
1.fllutter 安装cd 目标文件夹从github下载flutter稳定版本git clone -b stable https://github.com/flutter/flutter.git或者git clone -b dev https://github.com/flutter/flutter.git添加flutter相关工具到path中:export PATH=`pwd...
2019-11-08 19:06:16
4603
1
原创 -bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad
-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad执行cocoapods相关命令时报错误.解决办法:重新安装cocapodssudo gem install cocoapods...
2019-11-07 18:08:48
486
原创 Swift 学习总结九: 泛型、访问控制
Swift 泛型Swift 提供了泛型让你写出灵活且可重用的函数和类型。Swift 标准库是通过泛型代码构建出来的。Swift 的数组和字典类型都是泛型集。你可以创建一个Int数组,也可创建一个String数组,或者甚至于可以是任何其他 Swift 的类型数据数组。泛型使用了占位类型名(在这里用字母 T 来表示)来代替实际类型名(例如 Int、String 或 Double)。 ...
2019-10-25 16:57:05
260
原创 Swift 学习总结八: 类型转换、扩展、协议
Swift 类型转换Swift 语言类型转换可以判断实例的类型。也可以用于检测实例类型是否属于其父类或者子类的实例。Swift 中类型转换使用 is 和 as 操作符实现,is 用于检测值的类型,as 用于转换类型。类型转换也可以用来检查一个类是否实现了某个协议。检查类型类型转换用于检测实例类型是否属于特定的实例类型。你可以将它用在类和子类的层次结构上,检查特定类实例的类型并且转换这个...
2019-10-25 16:53:50
440
原创 Swift 学习总结七: 可选链、自动引用计数
Swift 可选链可选链(Optional Chaining)是一种可以请求和调用属性、方法和子脚本的过程,用于请求或调用的目标可能为nil。可选链返回两个值:如果目标有值,调用就会成功,返回该值如果目标为nil,调用将返回nil多次请求或调用可以被链接成一个链,如果任意一个节点为nil将导致整条链失效。可选链可替代强制解析通过在属性、方法、或下标脚本的可选值后面放一个问...
2019-10-25 16:50:39
174
原创 Swift 学习总结六: 构造过程、析构过程
构造过程构造过程是为了使用某个类、结构体或枚举类型的实例而进行的准备过程。这个过程包含了为实例中的每个属性设置初始值和为其执行必要的准备和初始化任务。Swift 构造函数使用 init() 方法。与 Objective-C 中的构造器不同,Swift 的构造器无需返回值,它们的主要任务是保证新实例在第一次使用前完成正确的初始化。类实例也可以通过定义析构器(deinitializer)在类实...
2019-10-25 16:46:39
179
原创 Swift 学习总结五:下表脚本、继承
Swift 下标脚本下标脚本 可以定义在类(Class)、结构体(structure)和枚举(enumeration)这些目标中,可以认为是访问对象、集合或序列的快捷方式,不需要再调用实例的特定的赋值和访问方法。举例来说,用下标脚本访问一个数组(Array)实例中的元素可以这样写 someArray[index] ,访问字典(Dictionary)实例中的元素可以这样写 someDiction...
2019-10-25 16:40:49
477
原创 Swift 学习总结四:类、结构体、属性、方法
Swift 结构体Swift 结构体是构建代码所用的一种通用且灵活的构造体。我们可以为结构体定义属性(常量、变量)和添加方法,从而扩展结构体的功能。与 C 和 Objective C 不同的是:结构体不需要包含实现文件和接口。结构体允许我们创建一个单一文件,且系统会自动生成面向其它代码的外部接口。结构体总是通过被复制的方式在代码中传递,因此它的值是不可修改的。 ...
2019-10-25 16:32:48
401
原创 Swift 学习总结三:数组,字典,枚举,闭包, 函数
数组 ///创建数组 //创建某一类型的含有n个初始元素的数组 var array1 = [Int](repeating: 5, count: 3) //创建某一类型空数组 var array2 = [Int]() //创建某一类型的任意数量数组 var array3: [Any] = ...
2019-10-25 16:15:44
335
原创 Swift 学习总结二:运算符及流程控制
Swift 运算符运算符是一个符号,用于告诉编译器执行一个数学或逻辑运算。Swift 提供了以下几种运算符:算术运算符比较运算符逻辑运算符位运算符赋值运算符区间运算符其他运算符算术运算符以下表格列出了 Swift 语言支持的算术运算符,其中变量 A 为 10,变量 B 为 20:运算符描述实例+加号A + B 结果为 30−减号A −...
2019-10-25 15:53:03
202
原创 Swift 学习总结一:数据类型及可选类型(Optionals)
内置数据类型Swift 提供了非常丰富的数据类型,以下列出了常用了几种数据类型:Int一般来说,你不需要专门指定整数的长度。Swift 提供了一个特殊的整数类型Int,长度与当前平台的原生字长相同:在32位平台上,Int和Int32长度相同。在64位平台上,Int和Int64长度相同。除非你需要特定长度的整数,一般来说使用Int就够了。这可以提高代码一致性和可复用性。即使是在32位平...
2019-10-25 15:43:44
436
转载 iOS 13 正式发布,来看看有哪些 API 变动
iOS 13 已正式发布,网上对其用户体验上的新特性的描述也很多。对于开发来说,需要关注的另一方面是新系统在 API 层面做了哪些改动,从而会对我们现有的代码产生什么影响。在这里,我们基于 iOS 13 Release Notes 做了一些整理,主要是列表出 Apple 提供的一些新的 API 和弃用了哪些 API,一起来看看。GeneraliOS 13 不再支持 UIApplicatio...
2019-09-25 16:36:46
456
原创 shell脚本语言bash基础语法学习(echo、数组、基本运算符、流程控制)
一 echo1.显示普通字符echo "jack 身高 188"#输出结果:jack 身高 1882.显示转义字符echo " \" jack 身高 188 \" "#输出结果: " jack 身高 188 "3.打印变量name="Jack"echo "${name} 身高 188"#输出结果:jack 身高 1884.开启转义字符并换行 -eecho -e "ja...
2019-06-27 15:09:14
1370
原创 shell脚本语言bash基础语法学习(简介、变量、字符串)
一 简介android开发中进行动态库编译(.so文件)ios开发中静态库编译(.a文件)掌握shell可以修改和应用shell脚本,shell是用c语言开发的程序,是开发者和Linux系统的桥梁,shell有多版本脚本语言,其中bash是linux默认的语言,并且移植到多平台且相对简单易用,在开发中应用较为广泛。二 创建及运行shellmac系统下默认支持shell的开发环境,下面以命...
2019-06-19 14:16:41
555
原创 iOS富文本实现超链接功能
当我们有一段文字,而一些特定的文字需要执行一些功能,比如打电话,复制内容或者跳转网页等等功能,就需要给属性文字加入定义好的链接,在uitextview的代理方法中拿到这些链接,以实现功能。以上面的图片为例,需求是点击练习客服和关注微信后实现一些功能第一步定义好链接的url比如联系客服和打电话可以自定义url的 scheme在项目中定义scheme.如果是mvp模式可以是路由的url...
2019-05-26 10:54:05
2474
原创 ios RSA 非对称加密
加密方式公钥加密私钥解密私钥加密公钥解密-优点:安全-缺点:速度慢非对称加密算法找出两个很大的质素P和QN = P*QM = (P-1)*(Q-1)计算公钥:找出整数E, E与M互质,即除了1以外没有其它公约数(特点:公钥简单,通常可以公开)私钥:找出整数D,使得(E*D)%M=1(特点:私钥复杂,通常私家珍藏)加密:(X^E)%N = Y (X是明文,Y是密文)解密...
2018-12-21 17:47:44
405
原创 iOS对称加密 AES DES
对称加密解密用同一个密钥, 所以密钥的保密就很重要介绍DES:数据加密标准DES设计中使用了分组密码设计的两个原则:混淆(confusion)和扩散(diffusion)3DES: 是DES向AES过渡的加密算法使用3条56位的密钥对数据进行三次加密。是DES的一个更安全的变形,目前还没有关于攻破3DES的报道AES:高级加密标准是美国联邦政府采用的一种区块加密标准。这个标准用来替...
2018-12-21 17:39:51
236
原创 cocoaPods之subspec子组件
好处我们写好的pod在项目中用的时候会发现自己开发pod时的文件夹全没了,里面一大堆文件堆在了一起,为什么会这样因为我们在编写podspec文件时,sourcefiles只是告诉pods你需要哪些文件是这个项目中需要的,而没有包括文件的层级结构,那么久需要我们来实现这个层级结构比如这里面的每一个文件夹,就是一个子pod,这样的好处是条理清晰,而且我们可以只用你需要的功能,在编写po...
2018-12-18 16:25:57
8248
原创 iOS cocoapods组件化之创建私有组件
步骤在gitlab项目中创建两个代码工程,一个是储存repo的仓库,另一个是组件仓库添加本地repo,名字和repo工程同名利用pod创建ios组件demo工程将工程文件提交git仓库,并打上和podspec version 相同的tag,验证podspec有效性,通过后将本地repo推送至仓库更新和维护组件工程使用1.创建仓库如图所示MDSpecs 是存放repo的远程仓...
2018-12-13 16:58:00
598
原创 CocoaPods 操作大全和遇到的坑
GEM 操作-更新源过去更新源大家基本用的都是淘宝 https://ruby.taobao.org/ 但是淘宝的源镜像已经停止维护了。以前更新及查看的做法: -gem sources —remove https://rubygems.org/ -gem sources -a https://ruby.taobao.org/ -gem sources -l -sudo gem ins...
2018-12-11 19:58:58
288
原创 iOS tableView cell高度自动布局 (masonry)
1.cell自动布局应用场景对于一个cell有多种状态,涉及到显示或者隐藏某些view,并且cell高度随时改变,如果用viewmodel来计算的话,很复杂增加了很多代码量,而且如果状态考虑的不全极有可能造成错误,如果用自动布局的话,则没有这么多的顾及。2.tableView设置tableview的懒加载中设置这两个属性 _tableView.estimatedRowHeight =...
2018-12-06 21:03:41
3929
1
原创 Tabbar图标上下跳动解决
现象更新了xcode10.1运行项目发现了一个奇怪的现象,就是每次从二级页面回到首页时,图标文字都挤在上面然后恢复位置,产生一个跳动的感觉。原因因为12.1 系统tabbar如果存在透明度,并且在push操作中隐藏了tabbar返回到首页时,计算frame就会出错,使用系统默认的tabbar时是有透明度毛玻璃效果的,所以如果将系统tabbar的透明度取消就没有这一现象了,不知道这是不是一个b...
2018-11-21 15:02:27
768
原创 Library not loaded pods中第三库报错问题
dyld: Library not loaded pods中第三库报错问题今天更换了真机证书后就报错dyld: Library not loaded pods 的问题,最终发现了问题,我原来设置的是系统信任, 而我更换证书后改为了全部信任,导致了在真机运行过程中出现问题,更改回来问题迎刃而解。...
2018-11-14 11:38:06
448
转载 Gitlab权限问题
访问权限 - Visibility Level这个是在建立项目时就需要选定的,主要用于决定哪些人可以访问此项目,包含3种Private - 私有,只有属于该项目成员才有原先查看Internal - 内部,用个Gitlab账号的人都可以clonePublic - 公开,任何人可以clone行为权限在满足行为权限之前,必须具备访问权限(如果没有访问权限,那就无所谓行为权限了),行为权限是指对该项目进行...
2018-07-06 15:43:35
6247
原创 cocoapods更新源镜像出现问题的解决方法
出现无法更换源镜像的情况一般有两种1无法移除源镜像gem sources --remove https://rubygems.org 这个是系统默认的源镜像。如果出现source https://rubygems.org not present in cache。这时候你无论是添加新的镜像再移除发现还是会失败。其实是地址写错了。正确的写法gem sources --remove https://r...
2018-06-22 16:18:16
1814
原创 NSPhotoLibraryUsageDescription 奔溃处理
This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value exp...
2018-05-31 17:28:59
2591
原创 MD5的作用有哪些
1.密码可以当做密码验证,为了保证密码不在cmd5网站上破译,最好加盐及乱序,也可以只取一半md5的长度。md5是不可逆算法,只要保证算法不变,就能和数据库中的md5相匹配。2.搜索以搜索为例,你输入“csdn 博客” 和 输入“博客 csdn”的结果是不一样的,因为你搜索的时候他们对应的md5是不一样的,他们可以根据这个md5去查询内容。3.版权当一个视频或者音频创作出来的时...
2018-05-30 16:55:21
13993
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人