自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (1)
  • 收藏
  • 关注

原创 KakaJSON源码浅析(一)

目前github上比较常见的Swift版本JSON解析库有:ObjectMapper底层实现主要是通过运算符重载机制,需要手动对每一个属性写映射关系,比较繁琐。struct Temperature: Mappable { var celsius: Double? var fahrenheit: Double? init?(map: Map) { } mutating func mapping(map: Map) { celsius &

2020-11-11 16:20:35 662

原创 Alamofire从源码浅析2种不符合实际需求的参数格式总结

目前公司的Swift项目网络请求使用的是第三方开源库Alamofire,在使用的过程中有遇到过2种参数格式无法正确传递到后端的情况;1)参数包含空数组直接会被过滤删除掉2)参数包含二维数组会把二维数组转换为一维数组下面将结合Alamofire参数编码部分的源码来一步一步的分析为啥不满足这2种参数格式。1、首先看下实际结果这里有必要先说下测试接口使用 httpbin.org来进行测试的好处;因为它在被调用后可以返回服务端所接收到的所有参数;在我们这里仅仅调试参数,所以比使用抓包工具要更方便一些,

2020-10-21 00:32:15 364

原创 Swift库资源文件获取

库资源包括图片、xib、xib对应的图片、以及其它文件等。本文只分析总结获取图片资源文件中所遇到的坑;大致原理其实都是一样,当你真正理解了其中的原理再获取其它资源是一样的容易。我们制作的库有动态库、静态库之分;首先理解下:Bundle我们构建的app以及framework都是一个bundle,它又主要分为2种:1)Bundle.mainThe main bundle lets you access the resources in the same directory as the curren

2020-09-21 01:41:12 1031

原创 Swift静态Pod私有库踩坑

首先你应该掌握以下几点知识:1、动态库、静态库的区别,以及对应的架构合并、拆分。2、Xcode对应的workspace、project、target的关系。3、Pod依赖可以是源码、静态库(.a+framework)、动态库(framework)。4、源码依赖的情况下,Pod打包进宿主工程可以选择是全部静态库打包还是动态库打包,或者某个库单独设置。5、CocoaPods本地仓库缓存。以上只是大概列举了一部分比较重要的,其实这块涉及到的知识点非常之多,如果你仅仅是为了实现这些功能,而并没

2020-09-21 01:40:29 1025 1

原创 本地Pod库对应的Podfile和Podspec如何写?

一般我们制作的pod公有库或者是私有库都放在远程,并且每次修改都需要push;如果仅仅是放在本地进行调试的模块/组件,那么对应的podfile文件以及podspec应该如何编写呢?1、搭建测试项目以及framework1)先创建一个测试项目2)创建一个framework,放到和测试项目同一个目录下3)再创建一个类MTPopView4)关掉MTPopView,然后在MTShopList项目中通过Add Files添加MTPopView5)按照正常的target相互调用那样,添加framew

2020-08-31 22:31:43 1576

原创 Podspec语法

前言​ 长时间不写Podspec文件,容易忘记里面的一些属性含义,所以本文把 官方Podspec语法v1.9.0 翻译出来并且加上了一部分自己的理解,方便后续在用到的时候可以直接拿过来看。CocoaPods版本升级后会保持对本文进行更新。一、Root specification相关root规范存储了相关库特定版本的信息。下面的属性只能写在root规范上,而不能写在“sub-spec”上。1、必须的字段. namespec.name = 'AFNetworking'pod search 搜

2020-08-30 21:33:08 1266

原创 iOS项目中通过shell脚本批量替换第三方资源文件

1、需求​ 我们在做开发过程中,会用到很多第三方库,并且通过CocoaPods进行管理,有时候引入的这个必要的库在UI上并不能完全满足产品的需求,比如背景图片、铃声等资源,需要对第三方库资源文件进行更改;​ 如果每次通过手动的方式去找对应bundle里面的资源文件,然后一个个去替换很是麻烦,并且也很容易弄错,所以可以考虑写一个shell脚本进行批量的替换操作。2、shell脚本源码#!/bin/shecho "\n----------- 开始???? --------------\n"sourc

2020-07-20 19:48:04 498

原创 对Swift协议RawRepresentable的理解

前言对于枚举原始值,系统默认只能是字符串、整型、浮点型字面量,那么我们能不能增加其它类型呢?答案是可以的,通过协议RawRepresentable就可以实现正文首先定义一个枚举enum Terrain: String { case forest = "F" case mountain = "M" case water = "W"}1、RawRepresentable协议该协议定义了一个初始化构造器,当传入无效的原始值时构造器会返回nil;还定义了一个rawValue

2020-07-08 17:07:01 1448

原创 在Swift开发中关于Optionals你需要知道的5件事(译)

在Swift开发中关于Optionals你需要知道的5件事(译)Optionals是Swift的核心,并且在第一个版本中就已经存在;optional修饰的值允许我们在关注可能为nil值的时候书写整洁的代码。如果你刚开始接触Swift,那么你可能需要熟悉在属性中添加?的语法;只要你熟悉了这个语法你就可以从中受益,比如extensions。在Swift中什么是可选值?在我们深入了解option...

2019-11-16 23:50:47 579

原创 iOS WebView通信链路安全

最近在整理技术点的时候发现电脑上存有一些知识点的记录,是以前在开发的过程中遇到的一些问题,现在再重新梳理了出来项目需求:防止webview里面的数据被抓包,给app中的webview也加上https校验,防止攻击https校验原理、加密原理、证书制作等已经有很多文章介绍,相信大家已经很熟悉了;本文只讲在多家服务器资源访问的情况下对web实现https校验的部分。一、相关知识点一般情况下很...

2019-08-14 00:06:06 620

LVDS原理介绍

详细介绍LVDS原理,在嵌入式FPGA中常用。

2013-08-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除