自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MAC配置SSH

(注意,这里的 your_email@example.com 是你自己的邮箱(例如:11******@qq.com),选一般的常用的邮箱即可,不常用的邮箱一般不推荐)首次使用sourcetree获取该域名服务器下的项目时,无法把该域名下的的信息(域名,host,公钥)写入本地的konwn_hosts(目录:~/.ssh/)文件中的。复制文件内容,粘贴到github等网站的SSH key里,标题可以随便起,大功告成!默认会在相应路径下(~/.ssh)生成id_rsa和id_rsa.pub两个文件,

2023-02-06 18:12:16 11516 1

原创 08、Flutter开发创建项目及其案例(三)

一、自定义Widget此次例子中,项目就是一个大的widget标题的Widget:使用一个Text Widget完成;描述的Widget:使用一个Text Widget完成;图片的Widget:使用一个Image Widget完成;上面三个Widget要垂直排列,我们可以使用一个Column的Widget另外,三个展示的标题、描述、图片都是不一样的,所以我们可以让Parent Widget来决定内容:创建三个成员变量保存父Widget传入的数据class ProductItem exte

2021-05-24 19:19:10 283

原创 07、Flutter开发创建项目及其案例(二)

2.3、代码改进2.3.1、改进样式我们可能希望文字居中显示,并且可以大一些;居中显示: 需要使用另外一个Widget,Center;文字大一些: 需要给Text文本设置一些样式;我们修改代码如下:我们在Text小部件外层包装了一个Center部件,让Text作为其child;并且,我们给Text组件设置了一个属性:style,对应的值是TextStyle类型;import 'package:flutter/material.dart';main(List<String> a

2021-05-10 15:20:21 323 1

原创 06、Flutter开发创建项目及其案例(一)

一. 创建Flutter项目创建Flutter项目有两种方式:通过命令行创建 和 通过开发工具创建1.1. 通过命令行创建通过命令行创建非常简单,在终端输入以下命令即可:**注意:**Flutter的名称不要包含特殊的字符,另外不可以使用驼峰标识创建完之后使用自己喜欢的开发工具打开即可flutter create learn_flutter1.2. 通过开发工具创建我这里也可以直接通过Android Studio1.3. 默认程序分析我们讲创建的应用起来跑在模拟器上(我这里选择iPh

2021-05-09 18:59:36 440 1

原创 Carthage安装使用

Carthage介绍Carthage是GitHub上开源的、用于Cocoa开发的三方依赖管理工具。GitHub地址:https://github.com/Carthage/Carthage通过Carthage,我们在iOS项目的开发中可以很方便的对三方依赖进行配置管理。Carthage的原理,简而言之,是通过配置文件Cartfile指定所依赖的三方框架,Carthage通过分析配置文件的内容,通过从github、git仓库或二进制包URL获取依赖,生成为同时包含模拟器和真机目标代码的.framewor

2021-05-07 20:44:45 794

原创 05、Flutter开发Dart的异步(二)

三. Dart的异步补充3.1. 任务执行顺序3.1.1. 认识微任务队列在前面学习学习中,我们知道Dart中有一个事件循环(Event Loop)来执行我们的代码,里面存在一个事件队列(Event Queue),事件循环不断从事件队列中取出事件执行。但是如果我们严格来划分的话,在Dart中还存在另一个队列:微任务队列(Microtask Queue)。微任务队列的优先级要高于事件队列;也就是说事件循环都是优先执行微任务队列中的任务,再执行 事件队列 中的任务;那么在Flutter开发中,哪

2021-05-04 19:04:03 186

原创 04、Flutter开发Dart的异步(一)

一. Dart的异步模型1.1. Dart是单线程的1.1.1. 程序中的耗时操作开发中的耗时操作:在开发中,我们经常会遇到一些耗时的操作需要完成,比如网络请求、文件读取等等;如果我们的主线程一直在等待这些耗时的操作完成,那么就会进行阻塞,无法响应其它事件。如何处理耗时的操作呢?针对如何处理耗时的操作,不同的语言有不同的处理方式。处理方式一:多线程,比如Java、OC、Swift、C++,我们普遍的做法是开启一个新的线程(Thread),在新的线程中完成这些异步的操作,再通过线程间通信的

2021-05-04 18:47:11 286

原创 03、Flutter开发Dart-函数

1. 函数1.1. 函数的基本定义Dart是一种真正的面向对象语言,所以即使函数也是对象,所有也有类型, 类型就是Function。这也就意味着函数可以作为变量定义或者作为其他函数的参数或者返回值.函数的定义方式:返回值 函数的名称(参数列表) { 函数体 return 返回值}按照上面的定义方式, 我们定义一个完整的函数:int sum(num num1, num num2) { return num1 + num2;}Effective Dart建议对公共的API,

2021-05-04 16:29:48 442

原创 02、Flutter开发Dart-数据类型

一、 数据类型1.1. 数字类型对于数值来说,我们也不用关心它是否有符号,以及数据的宽度和精度等问题。只要记着整数用int,浮点数用double就行了。不过,要说明一下的是Dart中的int和double可表示的范围并不是固定的,它取决于运行Dart的平台。// 1.整数类型intint age = 18;int hexAge = 0x12;print(age);print(hexAge);// 2.浮点类型doubledouble height = 1.88;print(heig

2021-05-04 16:27:50 275

原创 01、Flutter开发Dart安装与定义变量

一、安装Dart为什么还需要安装Dart呢?在安装Flutter SDK的时候,它已经内置了Dart了,我们完全可以直接使用Flutter去进行Dart的编写并且运行。但是,如果你想单独学习Dart,并且运行自己的Dart代码,最好去安装一个Dart SDK。1.2、下载Dart SDK到Dart的官方,根据不同的操作系统下载对应的Dart官方网站无论是什么操作系统,安装方式都是有两种:通过工具安装和直接下载SDK,配置环境变量1.通过工具安装Windows可以通过Chocolateym

2021-05-04 16:10:25 377

原创 音视频01-mac环境搭建

1 FFmpeg1.1 FFepeg安装在Mac环境中,直接使用Homebrew安装FFmpeg即可。终端执行:brew install ffmpeg安装完毕后,如果能成功在命令行查看FFmpeg的版本号,那说明已经安装成功。ffmpeg -version1.2 目录结构通过brew install安装的软件会存放到/usr/local/Cellar目录中,通过以下命令可以打开FFmpeg的安装目录。cd /usr/local/Cellar/ffmpegopen .bin

2021-03-29 13:57:57 151

原创 githubhosts配置

好用的工具:SwitchHosts添加链接描述如何操作操作系统的 hosts 文件Windows 下在: C:/Windows/system32/drivers/etc/hosts苹果 Mac OSX 和 Ubuntu 等linux系一般在:/etc/hostsmac可command+shift+G前往/private文件夹,hosts文件在etc文件夹下,可以直接访问配置文件。hosts 文件内关于 github IP 地址的内容199.232.69.194 github.global.

2021-03-28 15:36:46 2317 1

原创 flutter开发mac环境搭建

一、flutter SDK下载1、官网下载地址:https://flutter.dev/docs/development/tools/sdk/releases?tab=macos选择下载和自己操作系统的版本且稳定的Stable版本。2、下载之后解压,选择保存路径,建议保存到系统根目录,或者资源库,不建议保存到下载、桌面等地方,避免误操作。flutter环境变量配置1、因为需要在终端执行flutter命令,所以需要flutter环境变量,mac配置环境变量需要编辑~/.bash_profile文件。

2021-01-04 11:12:35 503

原创 新mac安装CocoaPods完整流程

背景新入职公司,分配一台全新MacBook pro,借此机会梳理一下cocoapods的完整安装流程。cocoapods安装依赖关系cocoapods安装需要ruby,更新ruby需要rvm,下载rvm需要gpg,下载gpg需要homebrew,所以安装顺序是homebrew->gpg->rvm->ruby-cocoapods,注意这是完整流程,如果只是更新做cocoapods更新操作即可,不需要从第一步开始。一、安装homebrew终端命令:/bin/bash -c "$(c

2020-12-12 17:45:49 3576 5

原创 flutter开发-MAC终端配置的环境变量失效问题

实践问题:mac在配置好环境变量之后,同步检测成功,查看版本一切正常,重启终端或者vscode之后,编译代码出现bin/sh: dart: command not found问题。问题原因:mac装了zsh,zsh加载的是~/.zshrc 文件,而没有加载 ~/.bash_profile文件。解决方法:1、终端 cd到~/.zshrc文件位置(该文件路径一般为/Users/用户名/.zshrc),执行指令:open -e .zshrc2、在最后一行加上source ~/.bash_profile*

2020-10-27 18:02:25 899 1

原创 IOS-swift状态栏设置Status bar style

更改状态系统颜色setNeedsStatusBarAppearanceUpdate()override var preferredStatusBarStyle: UIStatusBarStyle { let _ = super.preferredStatusBarStyle return UIStatusBarStyle.lightContent}preferredStatusBarStyle不调用的问题1、删除info.plist 这个键值对 <key>UI

2020-09-14 21:59:13 963

原创 IOS开发Swift笔记26-响应式编程

响应式编程(Reactive Programming,简称RP)也是一种编程范式,于1997年提出,可以简化异步编程,提供更优雅的数据绑定一般与函数式融合在一起,所以也会叫做:函数响应式编程(Functional Reactive Programming,简称FRP)——————————————————————————————比较著名的、成熟的响应式框架ReactiveCocoa简称RAC,有Objective-C、Swift版本官网: http://reactivecocoa.io/git

2020-09-09 17:38:44 268

原创 IOS开发Swift笔记25-面向协议编程

面向协议编程面向协议编程(Protocol Oriented Programming,简称POP)是Swift的一种编程范式, Apple于2015年WWDC提出在Swift的标准库中,能见到大量POP的影子同时,Swift也是一门面向对象的编程语言(Object Oriented Programming,简称OOP)在Swift开发中,OOP和POP是相辅相成的,任何一方并不能取代另一方POP能弥补OOP一些设计上的不足————————————————————————————回顾OOPO

2020-09-09 00:43:59 271

原创 IOS开发Swift笔记24-函数式编程

Array的常见操作var arr = [1, 2, 3, 4] // 重组var arr2 = arr.map { $0*2} // [2, 4, 6, 8]// 过滤var arr3 = arr.filter { $0%2 == 0} // [2, 4]// 元素演绎var arr4 = arr.reduce(0) { $0+$1} // 10var arr5 = arr.reduce(0, +) // 10print(arr5)func double(_ i: Int) -&

2020-09-09 00:21:35 115

原创 IOS开发Swift笔记23-模式匹配

模式什么是模式?模式是用于匹配的规则,比如switch的case,捕捉错误的catch、if、g’uard、while、for语句的条件————————————————————————————Swift中的模式有通配符模式(Wildcard Pattern)标识符模式(Identifier Pattern)值绑定模式(Value-Binding Pattern)元组模式(Tuple Pattern)枚举Case模式(Enumeration Case Pattern)可选模式(Optio

2020-09-08 19:32:39 212

原创 IOS开发Swift笔记22-字面量

var age = 10var isRed = falsevar name = "Jack"上面代码:10, false,“Jack”都是字面量————————————————————————————常见字面量的默认类型public typealias IntegerLiteralType = Intpublic typealias FloatLiteralType = Doublepublic typealias BooleanLiteralType = Boolpublic type

2020-09-08 16:16:30 91

原创 IOS开发Swift笔记21-内存管理、指针

内存管理跟OC一样,Swift也是采取基于引用计数的ARC内存管理(针对堆空间)Swift的ARC中有3种引用强引用(strong reference):默认情况下,引用都是强引用弱引用(weak reference):通过weak定义弱引用-必须是可选类型的var,因为实例销毁后,ARC会自动将弱引用设置为nil-ARC自动给弱引用设置nil时,不会触发属性观察器无主引用(unowned reference):通过unowned定义无主引用-不会产生强引用,实例销毁后仍然存储着实例的内存

2020-09-08 01:52:14 158

原创 IOS开发Swift笔记20-访问控制

访问控制在访问权限控制这块,Swift提供了5个不同的访问级别(以下是从高到低排列, 实体指被访问级别修饰的内容)open:允许在定义实体的模块、其他模块中访问,允许其他模块进行继承、重写(open只能用在类、类成员上)public:允许在定义实体的模块、其他模块中访问,不允许其他模块进行继承、重写internal:只允许在定义实体的模块中访问,不允许在其他模块中访问fileprivate:只允许在定义实体的源文件中访问private:只允许在定义实体的封闭声明中访问绝大部分实体默认都是

2020-09-07 18:53:50 161

原创 IOS开发Swift笔记19-扩展(Extension)

扩展(Extension)Swift中的扩展,有点类似于OC中的分类(Category)扩展可以为枚举、结构体、类、协议添加新功能可以添加方法、计算属性、下标、(便捷)初始化器、嵌套类型、协议等等扩展不能办到的事情不能覆盖原有的功能不能添加存储属性,不能向已有的属性添加属性观察器不能添加父类不能添加指定初始化器,不能添加反初始化器…计算属性、下标、方法、嵌套类型extension Double { var km: Double { self * 1_000.0 }

2020-09-07 18:11:59 472 1

原创 IOS开发Swift笔记18-高级运算符

关于String的思考1个String变量占用多少内存?下面2个String变量,底层存储有什么不同?var str1 = "0123456789"var str2 = "0123456789ABCDEF"

2020-09-07 17:51:23 118

原创 IOS开发Swift笔记17-泛型

泛型泛型可以将类型参数化,提高代码复用率,减少代码量泛型函数赋值给变量————————————————————————————————————func swapValue<T>(_ a: inout T, _ b: inout T){ (a, b) = (b, a)}var i1 = 10var i2 = 20swap(&i1, &i2)var d1 = 10.0var d2 = 20.0swap(&d1, &d2)struct

2020-09-06 02:40:26 153

原创 IOS开发Swift笔记16-错误处理

错误类型开发过程中常见的错误类型语法错误(编译报错)逻辑错误运行时错误(可能导致闪崩,一般也叫异常)…——————————————————自定义错误Swift中可以通过Error协议自定义运行时的错误信息函数内部通过throw抛出自定义Error,可能会抛出Error的函数必须加上throwsenum SomeError: Error { case illegalArg(String) case outOfBounds(Int, Int) case outOf

2020-09-05 23:25:28 172

原创 IOS开发Swift笔记15-协议

协议协议可以定义方法、属性、下标的声明。协议可以被枚举、结构体、类遵守(多个协议用逗号分开)protocol Drawable { func draw() var x: Int {get set} var y: Int {get} subscript(index: Int) -> Int {get set}}protocol Test1 {}protocol Test2 {}protocol Test3 {}class TestClass: Test1,

2020-09-05 02:12:22 145

原创 IOS开发Swift14-可选链

可选链class Car { var price = 0 }class Dog { var weight = 0 }class Person { var name: String = "" var dog: Dog = Dog() var car: Car? = Car() func age() -> Int { 18 } func eat() { print("Person eat") } subscript(index: Int) ->

2020-09-04 18:51:30 129

原创 IOS开发Swif笔记13-初始化

初始化器类、结构体、枚举都可以定义初始化器类有2种初始化器:指定初始化器、便捷初始化器 // 指定初始化器 init (prameters){ statements} // 便捷初始化器convenience init(prameters){ statements}每个类至少有一个指定初始化器,指定初始化器是类的主要初始化器。默认初始化器总是类的指定初始化器。类偏向于少量指定初始化器,一个类通常只有一个指定初始化器。初始化器的相互调用规则指定初始化器必须

2020-09-04 18:31:53 177

原创 IOS开发Swift笔记12-继承

继承值类型(枚举、结构体)不支持继承,只有类支持继承没有父类的类,称为:基类Swift并没有想OC,Java那样的规定:任何类最终都要继承自某个基类子类可以重写父类的下标、方法、属性,重写必须加上override关键字class Animal { var age = 0}class Dog: Animal { var weight = 0}class ErHa: Dog { var iq = 0}let a = Animal()a.age = 10p

2020-09-03 22:03:21 211

原创 IOS开发Swift笔记11-方法和下标

方法枚举、结构体、类都可以定义实力方法、类型方法。实例方法:通过实力对象调整。类型方法:通过类对象调用,用static或者class关键字定义class Car { static var cout = 0 init() { Car.cout += 1 } static func getCount() -> Int { cout }}let c0 = Car()let c1 = Car()let c2 = Car(

2020-09-03 19:53:04 121

原创 IOS开发Swift笔记10-属性

属性Swift中跟实例相关的属性可以分为2大类1、存储属性类似于成员变量存储在实例的内存中结构体和类都可以定义存储属性枚举不可以定义存储属性2、计算属性本质就是方法(函数)不占用实例的内存枚举、结构体、类都可以定义计算属性struct Circle { // 存储属性 var radius: Double // 计算属性 var diameter: Double { set { radius = newValue

2020-09-03 01:14:13 185

原创 IOS开发Swift笔记09-闭包

闭包表达式在Swift中,可以通过func定义一个函数,也可以通过闭包表达式定义一个函数func sun(_ v1: Int, _ v2: Int) -> Int {v1 + v2}var fn = { (v1: Int, v2: Int) -> Int in return v1 + v2}print(fn(10, 20))var a = { (v1: Int, v2: Int) -> Int in return v1 + v2}(10,

2020-09-02 23:57:40 524

原创 IOS开发Swift笔记08-结构体和类

结构体在 Swift 标准库中,绝大多数的公开类型都是结构体,而枚举和类只占很小一部分比如Bool、Int、Double、 String、Array、Dictionary等常见类型都是结构体① struct Date {② var year: Int③ var month: Int④ var day: Int⑤ }⑥ var date = Date(year: 2019, month: 6, day: 23)所有的结构体都有一个编译器自动生成的初始化器(initia

2020-09-02 00:27:36 188

原创 IOS开发Swift笔记07-可选项Optional

Optional可选项,一般也叫可选类型,它允许将值设置为nil在类型名称后面加个问号 ? 来定义一个可选项var name: String? = "Jack"name = nil var age: Int? // 默认就是nilage = 10age = nilvar array = [1, 15, 40, 29]func get(_ index: Int) -> Int? {if index < 0 ||

2020-09-01 23:42:30 266

原创 IOS开发Swift笔记06-枚举

枚举的基本用法enum Direction { case north case south case east case west}enum Direction1 { case north, south, east, west}var dir = Direction.northdir = Direction.eastdir = .westprint(dir)switch dir{ case .north: print("no

2020-09-01 22:34:10 138

原创 IOS开发Swift笔记05-函数

函数定义// 函数的定义func pi() -> Double { return 3.14}func sum(v1: Int, v2: Int) -> Int { return v1 + v2 } sum(v1: 10, v2: 20)

2020-09-01 02:31:23 236

原创 IOS开发Swift笔记04-流程控制

if-elselet age = 10if age>=22 { print("可结婚")}else if age>=18{ print("成年")}else if age>7{ print("少年")}else{ print("小孩")}/** if后面的条件是bool类型 if后面的条件可以省略小括号 条件后面大括号不可以省略 */whilevar num = 5while num>0 { print("n

2020-09-01 01:27:07 159

原创 IOS开发Swift笔记03-基础语法

print("hello World!")不用编写main函数,Swift讲全局范围内的首句可执行代码作为程序的入口。一句代码尾部可以省略分号(;),多聚代码写到同一行是必须用;断开。用var定义变量,let定义常量,编译器能自动推断出变量/常量的类型。Playground可以快速预览代码效果,是学习语法的好帮手Command + Shift + Enter:运行整个PlaygroundShift + Enter:运行截止到某一行代码Playground - ViewPlayground

2020-08-31 22:24:28 225

开运网、运势、测算最新源码.docx

运势源码个人运势星座塔罗牌起名祈福排盘

2021-11-17

空空如也

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

TA关注的人

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