自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梧雨北辰的博客

生活永远向前,不会停下的脚步,是对诗与远方的向往!

  • 博客(69)
  • 问答 (1)
  • 收藏
  • 关注

原创 探究Block原理(下篇)-捕获变量分析及__block原理

主要内容:1.分析Block捕获外部变量的过程2.理解Block修改外部变量的限制3.分析__block存储域类说明符的原理4.理解__block变量的存储域5.探究Block对对象的捕获过程6.Block的循环引用问题一、分析Block捕获外部变量的过程为了保证block内部能够正常访问外部的变量,Block有一个变量捕获机制,即Block语法表达式所使用变量可以被保存到Bloc...

2019-10-10 10:01:42 141

原创 探究Block原理(上篇)-Block本质及存储域问题

主要内容:1.理解Block的本质2.理解Block的存储域分类3.理解Block的Copy原理一、探究Block的本质从一个最简单的Block使用示例说起,我们分析如下代码://main.m文件:#import <Foundation/Foundation.h>int main(int argc, char * argv[]) { int num = 10;...

2019-10-06 22:19:42 125

原创 Swift学习:属性

本篇将详细总结介绍Swift属性的用法; 属性是与特定的Swift类、结构体、枚举相关联的值;与其他语言相比,属性不再是被类所特有。主要内容: 1.存储属性与计算属性 2.属性观察器 3.类型属性 4.全局变量与局部变量一、存储属性与计算属性从属性被定义的方式上看,Swift属性有存储属性和计算属性两种: 存储属性:存储在特定类或结构体实例里的一个常量(let)或变量(...

2018-08-13 09:23:14 398

原创 计算机网络基础知识

计算机网络的知识与我们的生活息息相关,对于每一个开发者来说更是十分重要,深入理解它,将有助于我们在实际工作中迅速解决相关问题。本篇就计算机网络的基本知识进行概要性总结。目录: 1.计算机网络常识 2.网络参考模型OSI与TCP/IP 3.理解数据封装传递过程 4.三次握手与四次挥手 5.理解IP地址 6.子网掩码 7.端口的作用 8.TCP与UDP 9.DNS的作用 1...

2018-06-21 10:14:34 643

原创 Runtime运行时-应用篇

在上篇文章iOS运行时Runtime基础后,本篇将会总结Rutime的具体应用实例,结合其动态特性,Runtime在开发中的应用大致分为以下几个方面:相关文章:iOS运行时Runtime基础一、动态方法交换:Method Swizzling实现动态方法交换(Method Swizzling )是Runtime中最具盛名的应用场景,其原理是:通过Runtime获取到方法实现的地址...

2018-06-11 11:19:21 375

原创 Runtime运行时-基础篇

本文主要整理了Runtime的相关知识。对于一个iOS开发者来说,掌握Runtime的重要性早已不言而喻。OC能够作为一门优秀的动态特性语言,在其背后默默工作着的就是Runtime。在网上也看过很多资料,最终我还是希望在一些关键的知识点上能够融入自己的理解,从简单的问题出发,一步一步理解和学以致用。相关文章:iOS运行时Runtime应用目录:一、怎么理解OC是动态语言,Run...

2018-06-11 11:16:55 392

原创 iOS视频播放的基本方法

本文总结了iOS中最常见的视频播放方法,不同的方法都各具特点,我希望能够总结它们的不同,方便在开发中选择合适的技术方案。Apple为我们提供了多种方法来实现视频播放,包括MPMoviePlayerController,MPMoviePlayerViewController,AVPlayer,AVPlayerViewController等。而值得注意的是,上述的MPMoviePlayerCont...

2018-06-11 11:12:50 338

原创 iOS导航栏使用总结

目录:一、设置导航栏样式 二、自定义导航栏返回按钮后侧滑不可用问题 三、隐藏导航栏底部的分割线 四、导航栏引起的布局问题相关文章:iOS状态栏的使用总结一、设置导航栏样式设置导航栏的样式可分为全局设置与局部设置;1.全局设置全局设置一般的都是在AppDelegate中设置,这样整个app都会生效,相关的代码与效果图如下://1.设置导航栏背景颜色[[...

2018-06-11 10:56:59 897

原创 iOS状态栏使用总结

目录:一、状态栏与导航栏 二、设置状态栏显隐与字体样式 三、设置状态栏背景色 四、启动页隐藏状态栏 五、状态栏、导航栏相关的常用宏定义相关文章:iOS导航栏的使用总结一、状态栏与导航栏状态栏:显示时间、电池等信息 导航栏:显示app页面标题,返回按钮等iOS7之前:状态栏与导航栏是分开的; iOS7之后:状态栏与导航栏合在一起;导航部分总高度(64)= 状态栏高...

2018-06-11 10:53:22 1028

原创 Python学习(20):爬虫示例

本篇是在学习Python基础知识之后的一次小小尝试,这次将会爬取熊猫TV网页上的王者荣耀主播排名,在不借助第三方框架的情况下演示一个爬虫的原理。一、实现Python爬虫的思路第一步:明确目的 1.找到想要爬取数据的网页 2.分析网页结构,找到需要爬取数据所在的标签位置第二步:模拟Http请求,提取数据,加工数据 1.模拟Http网络请求,向服务器发送请求,获取服务器返回给我们...

2018-06-11 10:36:14 4307

原创 Python学习(20):字典替代Switch

Python本身并不提供Switch的语法功能,为了能够解决类似switch分支需求的问题,我们可以使用字典代替实现。 解决思路:利用字典取值的get方法的容错性,处理switch语句中的default情况设置字典的vlaue为对应方法名,来代替switch语句中的代码块为不同key设置相同的value,模拟switch中穿透def taskForSunday(): ...

2018-06-11 10:32:47 7720

原创 Python学习(19):函数式编程-装饰器

我们在开发一个项目的时候,需要尽量遵循这样一个规则:修改是封闭的,扩展是开放的;也就是说在后期更改需求的时候,我们可以不改动以前的代码,而只需要通过扩展就可以满足新需求。Python的装饰器就是帮助我们来实现这一个目标的方法之一。一、什么是装饰器通过一个示例来理解装饰器的作用,首先定义一个打印当前时间的函数import timedef printCurrentTime():...

2018-06-11 10:30:31 148

原创 Python学习(19):函数式编程-高阶函数

一、什么是高阶函数我们可以用一个示例来理解高阶函数:abs()函数是Python内置的用于获取绝对值的函数,现在对其进行如下操作:value1 = abs(-10)print(value1) #打印10func1 = absvalue2 = func1(-10)print(value2) #打印10从上面可以看出,函数abs本身可以赋值给变量func1(即变量可以指向...

2018-06-08 11:43:48 187

原创 Python学习(19):函数式编程-匿名函数

函数式编程中如果需要传入函数作为参数,此时不需要显示的定义函数,直接使用匿名函数会十分方便。总结匿名函数的使用特点如下: 1. 匿名函数使用关键字lambda来定义,冒号前面是函数参数,冒号后面是一个表达式; 2. 匿名函数限制只能有一个表达式,不能做赋值,也不用写return,返回值就是该表达式的结果; 3. 用匿名函数的好处是不必担心函数名冲突;下面是匿名函数的使用示例1.匿...

2018-06-08 11:42:39 209

原创 Python学习(19):函数式编程-闭包的使用

一、函数也是对象Python里一切皆是对象,函数也可以当做一个对象来使用def func1(): print("这是一个函数")print(type(func1)) #打印:&lt;class 'function'&gt;此处说明函数也是一个类型,也可以当做对象来使用二、函数中的函数:闭包闭包:函数+环境变量(如下例中的func_in和a)def fu...

2018-06-08 11:41:51 132

原创 Python学习(18):枚举类型

一、Python中的枚举Python中的枚举是作为一个类存在的,这是与其他语言的一个较为鲜明的特征,总结它的用法特点如下: 1. Python枚举作为一个类存在,使用它需要首先导入枚举模块,然后继承并自定义需要的枚举类; 2. 导入枚举模块可以是Enum(枚举值可以是任意类型),也可以是IntEnum(枚举值只能是整型); 3. 枚举类不允许存在相同的标签;但是允许不同标签的枚举值相同,...

2018-06-08 11:38:04 628

原创 Python学习(17):Python中的JSON

一、JSON、JSON字符串、JSON对象、JSON: 一种轻量级的数据交换格式,全称是JavaScript对象标记(JavaScript Object Notation)JSON字符串: 字符串是JSON的表现形式,符合JSON格式的字符串才叫作JSON字符串JSON对象: JavaScript有JSON对象的叫法,但是在Python中其实是不称之为JSON对象的二、J...

2018-06-08 11:35:54 183

原创 Python学习(16):正则表达式(4)-正则函数的使用

一、findall函数增加新的参数Python正则中findall函数除了一些基本的用法外,我们还可以为其设置第三个参数,增强其功能,下面使用如下的字符串进行演示: langeuage = “PythonC#\nJavaPHP”1.匹配字符串中的’C#’result1 = re.findall('c#',langeuage)print("\n打印result1:") p...

2018-06-08 11:34:34 199

原创 Python学习(16):正则表达式(3)-数量词、边界匹配符

一、数量词数量词,即{n,m}形式的正则,m和n均为非负整数,其中n&lt;=m,用于规定最少匹配n次且最多匹配m次,注意在逗号和两个数之间不能有空格。例如,”o{1,3}”将匹配”fooooood”中的前三个o为一组,后三个o为一组,而”o{0,1}”等价于”o?”; 下面是一个示例:使用正则方式找出字符串中的3个单词 string = “python 111java678php” 分...

2018-06-08 11:32:21 698

原创 Python学习(16):正则表达式(2)-字符集

正则中使用’[]’表示字符集,在中括号里添加任意多个元素,只要其中一个被匹配将会被正则识别。下面以代码的形式演示几种常用的字符集使用。首先定义一个字符串string用于测试:string = "aac, abc, acc, adc, aec, afc, agc"1.字符集合:类似[xyz],匹配所包含的任意一个字符,例如,”[abc]”可以匹配”plain”中的”a”。#示例:找出...

2018-06-08 11:25:59 309

原创 Python学习(16):正则表达式(1)-基本使用

一、了解正则正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式由普通字符(如’Python’中的字符)和元字符(如’\d’)组成正则表达式的作用: 1.给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”): 2.可以通过正则表达式,从字符串中获取我们想...

2018-06-08 11:18:54 205

原创 Python学习(15):面向对象(3)-继承

一、Python中的继承面向对象的三大特征之一是继承,优秀的继承代码可以减少很多重复的代码工作,使开发更加高效。下面是Python代码中使用继承的一个示例: Person.py文件:class Person(object):&nbsp;&nbsp;&nbsp; sum =&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;def __init__(self,name ,...

2018-06-08 11:15:40 193

原创 Python学习(15):面向对象(2)-成员可见性

一、关于成员可见性默认情况下,Class内部创建的属性和方法,外部代码是可以通过实例直接操作的;但有时候为了保证封装性,我们不希望这些内部属性被外部直接访问。这就需要设置成员可见性。设置方法:在属性和方法名前面添加两个下划线__;作用:确保了外部代码不能随意修改对象内部的状态,可以在外部访问时做一些容错性判断,代码更加健壮;外部访问:如果设置私有后,外部代码仍需要访问这些私有属性,...

2018-06-07 14:20:42 483

原创 Python学习(15):面向对象(1)-类与对象

一、关于Python类的说明1.类是现实世界或者思维世界中的实体在计算机中的反馈,它可以将数据以及这些数据的操作封装在一起。 2.类是创建实例的模板,而实例则是一个一个具体的对象,各个实例拥有的数据都互相独立,互不影响; 3.Python的所有类型实例都是对象,而我们自定义的对象类型就是面向对象中的类; 4.类是对象的抽象,对象是类的实例; 5.面向对象的三大特性:封装、继承和多态;...

2018-06-07 14:19:31 278

原创 Python学习(14):Python函数的使用

一、函数的定义一个Python函数的定义格式如下:def funcname(parameter_list) : pass1.参数列表parameter_list可以没有 2.Python函数使用return返回结果,如果没有return,则默认返回结果是None 3.pass是默认的函数体,在Python中可以通过编译二、定义和调用函数#2.1.自定义相...

2018-06-07 14:12:27 181

原创 Python学习(13):Python项目组织结构

一、理解Python项目的组织结构二、Python中导入其他模块首先创建两个模块文件Python1.py和Python2.py作为被导入模块。 下面是在Python3.py模块中进行导入测试:1.import引入模块import只能引入模块,不能直接引入变量或者函数import PythonFiles.Python1print(PythonFiles.Pyth...

2018-06-07 14:08:30 3776 1

原创 Python学习(12):循环控制语句(for、while)

循环常用的两种操作就是While与for一、while循环不同于其他语言的是,python语言中的while可以添加else,处理循环结束的情况#不同于其他语言,while可以添加else,处理循环结束的情况counter = 1while counter &lt;= 10: counter += 1 print("now,counter is " + str(...

2018-06-07 14:05:51 321

原创 Python学习(11):条件控制语句(if)

本篇开始对Python语句的学习,首先了解Python语言的特点如下: 1.Python语句不强制使用分号结尾; 2.Python语句的结束依靠换行来识别,所以一定要注意缩进; 3.由于缩进的原因,Python代码不可以压缩混淆,所以也决定了它的开源的特性; 4.当前云服务时代,代码一般保存在远端,所以这样保证了源码的安全;一、使用if条件控制的一个小示例workday =...

2018-06-07 14:04:36 412

原创 Python学习(10):VSCode的使用

开篇中说过的,本系列Python的学习,1-9篇文章都是在自带的解释器IDLE中编写和运行的。但是在实际开发中,我们有专业的开发工具Pycharm,当做一些轻量化的开发还可以使用Sublime text3或者Visual Studio Code。使用这些集成更好的开发工具会提升我们的开发效率,本篇主要介绍VScode的用法。一、安装与配置1.软件下载下载地址:https://c...

2018-06-07 14:02:13 4074

原创 Python学习(9):变量运算符的使用

Python变量使用的各种运算符大致如下: 一、算术运算符与赋值运算符Python的赋值运算符是在算术运算符的基础上又添加了赋值操作,这两种运算符与其他编程语言相同,所以这里不再对运算的部分作过多说明。二、比较运算符比较运算符不只适用于Number类型,如:两个字符是比较ASCll码大小;两个字符串是按序比较字符串中的字符的ASCll码大小。 三、逻辑运算符Python...

2018-06-07 10:00:45 374

原创 Python学习(8):基本数据类型之set与dict

区别于序列型数据类型(str、list、tuple),此篇学习到的是无序数据类型:set和dict。一、理解集合set1.集合set使用{}表示,定义一个空的集合使用set(); 2.集合中的数据无序存放的,因此也不能使用索引取值和切片操作; 3集合中的元素是非重复的; 4.从数学的角度理解,集合可以实现差集(‘-‘)、交集(‘&amp;’)、并集(‘|’)测试1:创建集合有...

2018-06-07 09:52:19 162

原创 Python学习(7):基本数据类型之list与tuple

一、理解列表list学习列表可参考其他语言的数组的概念,其存在形式类似于[1,2,3,4,5,6],使用type方法打印会得到&lt;class ‘list’&gt;。列表具有以下特点:列表使用中括号[]来表示组中的数据类型并不是固定的,可以是字符串,整型,布尔值等的混合元素,如[1,False,”helloworld”]嵌套列表(列表中有列表元素):[[1,2,3],[False,...

2018-06-07 09:50:47 123

原创 Python学习(6):基本数据类型之str

Python中的字符串是由数字、字母、下划线组成的一串字符。一、引号的使用基本规则1.表示字符串用单引号、双引号和三引号 2.用于表示字符串的引号必须是成对出现的 3.字符串中掺入引号,可以使用转义字符”\” 二、多行字符串在Python的解释器中输入多行字符串,为了输入超长字符串并且可以在输入过程中换行,则需要在字符串首尾使用三引号,这里的三引号可以是三个单引号也可以三...

2018-05-31 17:51:53 347

原创 Python学习(5):基本数据类型之Number

Number类型的要点:1.Python3相对于Python2增加了布尔类型,而且去除了Python的Long类型 2.Number是不可改变的数据类型,这意味着改变数字,数据类型会分配一个新的对象。一、整型Python3中的整型包括正或负整数,区别于其他语言的是: 其他语言中的整型细分为:短整型(short) 、整型(int)、长整型(long) 不同进制数字表示:表示...

2018-05-29 18:50:43 214

原创 Python学习(4):变量与数据类型

学习一门新语言,一切从变量与基本类型说起。Python中的变量使用与其他常见语言有所不同,最大的特点就是Python的变量不需要声明。一、关于Python中变量使用的几点说明每个变量在使用前都必须赋值,变量赋值后才会被创建。Python中的变量就是变量,它没有类型,我们所说的”类型”是变量所指的内存中对象的类型。等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,等号(...

2018-05-16 09:36:28 164

原创 Python学习(3):理解计算机中编码

我们学习Python编程,经常对字符串这样的数据进行处理。我们也都知道计算机内部信息是采用二进制编码的,那么这其中的处理原理是什么呢?本篇就计算机中关于编码的知识进行总结。一、为什么计算机内部信息采用二进制编码计算机是由逻辑电路组成的,而逻辑电路只有接通与断开两个状态,正好可以对映二进制的“1”与“0”。这样的计算机设计在技术上会简单许多。二、计算机编码的由来计算机内部信息采用二进...

2018-05-15 17:59:18 216

原创 Python学习(2):环境安装与运行

Python作为一门跨平台语言,能够在不同的操作系统上很好的运行。当前主流计算机的操作系统有Windows,Mac OS,Linux三种,而在不同操作系统上安装Pyhton环境会有些许不同。选择Python版本: Python目前有两个版本,一个是2.x版本,一个是3.x版本,两个版本互不兼容。但由于3.x版本越来越流行,所以我们都应该选择3.x版本进行安装。一、Windows安装P...

2018-05-07 15:19:07 258

原创 Python学习(1):入门与导学

Life is simple ,I use Python.代码:代码是现实世界事物在计算机世界汇中的映射 编程:将现实世界中事物用计算机语言来描述最近在网上找了一些资料在学习Python,就想把每次的学习内容记录下来,这也是为了避免新学的东西容易遗忘。自己选择Python只有一个原因,那就是兴趣。作为一个iOS开发者,我也很好奇,传说中无所不能的Python到底是怎样的一种语言,使用Py...

2018-05-07 14:52:59 300

原创 ReactiveCocoa函数响应式编程-应用篇

使用RAC其实就是一个创建信号订阅信号的过程。上篇ReactiveCocoa函数响应式编程-基础篇,主要简单介绍了RAC的信号机制,本篇则以信号为核心,就信号常用的类、操作信号的方法,替换响应处理等方面总结RAC的使用。目录:一、RAC中常用的类 二、RAC中常用的宏 三、RAC中信号的常用操作 四、RAC常用的处理事件响应的方法 五、本篇总结本篇还提供了关于RAC使用的两个测...

2018-04-02 19:19:20 191

原创 ReactiveCocoa函数响应式编程-基础篇

一直以来,都很想学学ReactiveCocoa这个神奇的技术,但是最后都由于各种原因搁置了。这次终于也认真的研究一番,把自己学习心得整理出来留个记录。目录:一、了解函数响应式编程 二、ReactiveCocoa简介 三、ReactiveCocoa集成 四、理解什么是信号 五、从源码理解RAC的信号机制 六、本篇总结一、了解函数响应式编程函数式编程(Funcat...

2018-04-02 19:04:59 336

空空如也

空空如也

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

TA关注的人 TA的粉丝

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