自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梧雨北辰的博客

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

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

原创 Xcode多环境配置

"I walk slowly, but I never walk backward."我走得很慢,但从不后退主要内容:1.区分Project、Target、Scheme2.多Target 配置3.Scheme配置4.xcconfig文件配置一、区分Project、Target、Scheme•Project:是一个项目的整体,相当于一个仓库,包括了所有的代码和资源文件;•Target:相当于一个具体的产品,包含了对于代码,资源文件的具体使用规则和配置;•Scheme: 对指定Target的环境进行配

2021-10-11 22:55:13 722

原创 iOS内存管理(2)-深入解析自动释放池

主要内容:AutoreleasePool简介AutoreleasePool底层原理Autorelease与NSThread、NSRunLoop的关系AutoreleasePool在主线程上的释放时机AutoreleasePool在子线程上的释放时机AutoreleasePool需要手动添加的情况一、Autorelease简介iOS开发中的Autorelease机制是为了延时释放对象。自动释放的概念看上去很像ARC,但实际上这更类似于C语言中自动变量的特性。自动变量:在超出变量作用域后将被废弃;自动释放池:在

2021-10-10 17:56:34 833

原创 iOS内存管理(1)-基本概念整理

主要内容:01.内存区域划分02.内存管理/引用计数03.MRC手动管理引用计数04.ARC自动引用计数05.内存泄漏问题06.野指针问题一、内存区域划分程序在分配内存的时,主要分为:栈区、堆区、静态区、常量区、代码区;内存区域具体说明栈区存放局部变量的值,系统自动分配和释放;特点:容量小,速度快,有序堆区存放通过malloc系列函数或new操作符分配的内存,如对象;一般由程序员分配和释放,如果不释放,则出现内存泄露;特点:容量大,速度慢,无序;静态区存放全局变量和静态变量(包括静态局部变量和静态

2021-10-10 17:37:37 281

原创 探究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 733

原创 探究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 433

原创 Swift学习:属性

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

2018-08-13 09:23:14 551

原创 计算机网络基础知识

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

2018-06-21 10:14:34 1510

原创 Runtime运行时-应用篇

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

2018-06-11 11:19:21 555

原创 Runtime运行时-基础篇

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

2018-06-11 11:16:55 572

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

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

2018-06-11 11:12:50 904

原创 iOS导航栏使用总结

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

2018-06-11 10:56:59 1209

原创 iOS状态栏使用总结

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

2018-06-11 10:53:22 1321

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

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

2018-06-11 10:36:14 4724

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

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

2018-06-11 10:32:47 8258

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

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

2018-06-11 10:30:31 257

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

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

2018-06-08 11:43:48 333

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

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

2018-06-08 11:42:39 416

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

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

2018-06-08 11:41:51 246

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

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

2018-06-08 11:38:04 1985

原创 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 302

原创 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 320

原创 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 1158

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

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

2018-06-08 11:25:59 489

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

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

2018-06-08 11:18:54 334

原创 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 312

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

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

2018-06-07 14:20:42 692

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

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

2018-06-07 14:19:31 419

原创 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 415

原创 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 5006 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 585

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

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

2018-06-07 14:04:36 624

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

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

2018-06-07 14:02:13 4609

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

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

2018-06-07 10:00:45 483

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

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

2018-06-07 09:52:19 372

原创 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 301

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

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

2018-05-31 17:51:53 659

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

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

2018-05-29 18:50:43 410

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

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

2018-05-16 09:36:28 320

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

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

2018-05-15 17:59:18 390

原创 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 451

空空如也

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

TA关注的人

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