自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

汪宣桐的博客

代码先是给人看的,然后才是机器!!

  • 博客(21)
  • 收藏
  • 关注

原创 数组

数组本文只是我的个人学习笔记,用于记录数据结构和算法的学习总结。什么是数组数组是用来存储一组具有相同类型数据的一组连续内存空间。是一种线性数据结构。什么是线性表线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表。特性连续的内存空间和相同类型的数据。优点:具有随机访问的特性缺点:删除,插入数据效率低数组怎么...

2018-12-05 15:26:56 157

原创 数据结构和算法分析学习笔记——复杂度分析

复杂度分析(上)本文只是我的个人学习笔记,用于记录数据结构和算法的学习总结。如何得到算法的执行效率?事后统计方式:直接在设备上运行得到结果缺点:测试结果受测试环境和测试数据规模影响复杂度分析方式:时间复杂度分析和空间复杂度分析,直接通过代码就可以粗略的计算出算法的执行效率。通过 大 O 来表示时间复杂度时间复杂度:全名是渐进时间复杂度,标识代码执行时间随数据规模增...

2018-10-27 17:59:33 266

原创 AFNetworking的二次封装

AFNetworking的二次封装在iOS开发中,对于网络请求的封装,大部分人用的都是AFNetworking。对其的二次封装也有不少。前段时间,刚刚需要重构公司的APP,所以就重构了下网络请求。先放代码:XTNetworking框架结构XTNetworking主要是使用了AFNetworking作为网络请求。YYCache做为缓存。这两部分,如果项目里面已经存在可以不做添加。...

2018-08-22 10:25:38 1683

原创 iOS开发夜间模式的设置(主题切换)

iOS开发夜间模式的设置(主题切换)很长一段时间没有写博客了。想到自己最近刚好做了不少重构,刚好可以总结一下。夜间模式,很多阅读类的或资讯类的App都会这个功能。以前自己也做过,现在把它抽出来封装起来。先放地址:GitHub地址封装思路夜间模式,说起来就是换层皮。有因为是全局替换,我们需要知道是否切换了主题,这个时候,就可以通过通知去实现或者使用Block去实现。我选择是通...

2018-08-21 10:30:34 2813

原创 iOS开发创建Framework

iOS开发创建Framework最近项目需要切换成Swift版本,有很多工具库也想顺便切换成Swift版本。也就顺便记录一下怎么使用Swift创建Framework。在iOS8之前,我们使用自定义的库的时候,大部分都是使用.a的静态库。iOS8.0之后,一般使用Framework创建我们自己的库文件。当然Framework同时支持静态库和动态库。至于.a和.framework的区别这里就

2018-05-09 18:16:03 363

原创 自定义表情键盘

自定义表情键盘去年的时候,项目中有使用到表情键盘,接手过来的时候,整个表情键盘和项目耦合度太高了,想做一点扩展都让人头疼,所以,就抽时间封装了一个一表情键盘。最近在重构项目的时候,看到表情键盘这里,输入框,没有显示自定表情,就做了一下处理,让输入框可以显示表情。配置资源文件资源文件我是放在了 XTEmojiResources 文件中,其中: emojiPackages 是配置有几

2018-04-28 14:06:39 265

原创 懒加载、访问权限以及异常处理

懒加载在需要使用的使用进行加载。 =后面可以加的值:具体的值、构造函数、一般函数、闭包// 具体的值class Person { lazy var name: String = "xxxx"}// 调用构造函数class Person { lazy var dog: Dog = Dog()}// 一般函数class Person {

2018-04-23 14:45:23 190

原创 闭包

闭包闭包是可以在你的代码中被传递和引用的功能性独立模块。与OC的 Block 非常相似。表达式语法 { (parameters) -> (return type) in statements } // var add: (Int, Int) -> (Int) = { (a, b) -> (Int) in return a

2018-04-19 17:15:39 161

原创 泛型

泛型泛型是 Swift 最强大的特性之一,很多 Swift 标准库是基于泛型代码构建的。简单理解,就是一个泛化的类型,并不特指某一个具体的类型。泛型的使用:作为函数的参数或返回值一旦函数内部确定了 T 的具体类型,那么所有的 T 都是改类型func swapTwoValues(_ a: inout T, _ b: inout T) { // 一旦函数内部确定了 T 的

2018-04-19 14:58:23 119

原创 协议

协议定义格式定义协议的方式与类、结构体、枚举类型非常相似protocol SomeProtocol { // protocol definition goes here}多个协议用逗号分开,如果类有父类,将父类名放在协议之前,并用逗号隔开class SomeClass: SomeSuperclass, FirstProtocol, AnotherProtocol {

2018-04-18 14:44:28 139

原创 结构体和类

结构体使用 struct 声明。由一系列具有相同类型或不同类型的数据构成的数据集合。是一种数据结构。是值类型,在方法中传递的时候是值传递。无论枚举还是结构体重都可以定义方法struct Point { // 实例属性 var x: Double var y: Double // 实例方法 func distance() {

2018-04-17 17:15:14 141

原创 枚举

枚举枚举为一组相关值定义了一个通用类型,从而可以让你在代码中类型安全地操作这些值。 定义用 enum 关键字来定义一个枚举,然后将其所有的定义内容放在一个大括号 {} 中:enum SomeEnumeration { case north case south case east case west}SomeEnmeration.

2018-04-16 17:55:25 95

原创 函数

函数定义和调用函数定义了一个函数的时候,你可以选择定义一个或者多个命名的分类的值作为函数的输入(所谓的形式参数),或者定义函数完成后将要传回作为输出的值的类型(所谓它的返回类型)。func add(num1: Int, num2: Int) -> Int { return num1 + num2;}add(num1: 1, num2: 2)函数的形式参数和

2018-04-16 17:55:06 120

原创 可选类型以及类型转换

可选类型一个变量要么有值,要么没值。语法定义:let name: String? = nil。只有可选类型的可以赋值 nil。怎么使用:使用 ! 进行强制解包。var num: Int? = 0;num = nilif num != nil { num! + 1}可选绑定var num: Int? = 0;num = nilif let res

2018-04-14 18:23:32 1107

原创 集合类型

集合类型数组创建数组你可以使用确定类型通过初始化器语法来创建一个空数组:var someInts = [Int]()print("someInts is of type [Int] with \(someInts.count) items.")// prints "someInts is of type [Int] with 0 items."var someInts

2018-04-14 18:23:19 193

原创 字符串和字符

字符串和字符字符串字面量字符串字面量是被双引号 " 包裹的固定顺序文本字符。使用字符串字面量作为常量或变量的初始值。let someString = "Some string literal value"如果你需要很多行的字符串,使用多行字符串字面量。多行字符串字面量是用三个双引号引起来的一系列字符:let quotation = """The White Rabbit p

2018-04-14 18:23:03 191

原创 逻辑分支和循环

逻辑分支和循环语句逻辑分支if 语句let a = 1if a == 1 { print("a等于1")} else { print("a不等于1")}if语句中条件没有小括号,执行语句就算只有一句也不可以省略花括号guard 语句guard是Swift2.0之后新增的语法,它与if语句非常相似,他的目的是提高程序的可读性。guard必须包含els

2018-04-14 18:22:38 563

原创 常量和变量

常量和变量定义let a: Int = 10 // 常量var b: Double = 11.1 // 变量也可以简写成:let a = 10var b = 11.1Swift中有类型自动推到机制类型Int、Int8、Int16、Int32、Int64。常用的是Int、Double、Float、BoolSwift是类型安全语言,不同类型之间的运算,需要转成

2018-04-14 18:22:16 226

原创 iOS规范文档OC版

iOS规范文档OC版iOS规范文档OC版目录结构规范静态库项目目录命名规范通用规范清晰一致性驼峰原则文件夹命名规范类命名规范类别名规范方法命名规范代理命名规范变量命名规范常量命名规范图片命名注释规范成员变量注释规范方法注释规范代码组织代码规范

2018-04-14 17:09:17 797

原创 iOS通过dSYM文件分析crash日志

iOS通过dSYM文件分析crash日志平常在开发的过程中,遇到到了Crash可以很容易的通过Xcode去定位Crash的位置,但是当我们的App发布以后,遇到闪退就不可以通过Xcode去调试了。当然现在也有很多产品可以在线分析,例如腾讯的bugly与友盟的错误分析。这些分析工具的最基本的地方还是通过dSYM去分析Crash日志,符号化Crash日志。准备工作分析崩溃日志需要三个东西:

2018-03-16 17:57:19 4606

原创 iOS开发生成PHP推送的pem证书

iOS开发生成PHP推送的pem证书iOS开发生成PHP推送的pem证书前言生成方法方法一方法二前言最近准备写写博客,但不知道写些什么。刚好最近遇到后台推送证书出现了问题,要重新生成pem证书。就准备记录一下pem证书的生成方式生成方法生成pem证书有两种方法,我上网查了一下资料,大多都是使用方法二,其实现在直接使用方法一就可以了。方法

2018-01-18 10:19:21 174

空空如也

空空如也

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

TA关注的人

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