- 博客(51)
- 资源 (57)
- 问答 (5)
- 收藏
- 关注
原创 宝塔备份20b bug 和 无法登录 MySQL 服务器bug
造成原因:1、root密码不被ecs root帐号识别2、root帐号里面的没有localhost 用户。。。解决方法#vim /etc/my.cnf(注:windows下修改的是my.ini)在文档内搜索mysqld定位到[mysqld]文本段:/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)在[mysqld]字段中最下面一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:保存文档并退出2.接...
2020-08-31 21:46:29 432
原创 swift 多线程GCD 高级方法 DispatchGroup
DispatchGroupenter和leave 是要成对出现的//: FROM https://www.anuomob.comimport UIKitimport PlaygroundSupport//不希望主线程执行完毕就结束PlaygroundPage.current.needsIndefiniteExecution = truelet workingGroup = DispatchGroup()let workingQueue = DispatchQueue(label
2020-08-31 18:08:07 1497 1
原创 小白如何购买阿里云服务器(2020新版最详细教程)
很多第一次接触云计算的小白不懂如何购买阿里云服务器,不清楚该如何选购云服务器配置才能满足业务需求,为此笔者整理购买阿里云服务器教程(小白篇),希望能在选购云服务器配置上能帮助到大家!一:访问阿里云官网二:注册阿里云账号,或者使用淘宝账号登录激活阿里云账号。三:从产品里面选择云服务器ECS四:进入页面后选择立即购买,当天也可以看一下他的介绍后在点击购买五:选择购买的配置, 主要从以下几个方面考虑:1.付费方式:按年付费,按使用量付费。建议新人按月或者按年付费。2.选择服务器所在
2020-08-31 15:33:02 305 1
原创 swift GCD 基本操作
sync async asyncAfterGCD-串行 vs 并行GCD-同步 vs 异步GCD- sync提交任务到当前队列里,并且直到任务完成,当前队列才会返回GCD-async调度一个任务区立即执行但是不用等任务完成就会直接返回code//: FROM https://www.anuomob.comimport UIKitimport PlaygroundSupport//不希望主线程执行完毕就结束PlaygroundPage.curre
2020-08-31 15:15:14 221
原创 swift 多线程 GCD概念
任务+队列 易用 效率 性能底层是开源的底层地址:https://opensource.apple.com/tarballs/libdispatch/主要功能创建管理Queue 提交job Dispatch Group 管理Dispatch Object 信号量Semaphore 队列屏障 Barrier Dispatch Source Queue Context数据 DispatchI/O Channel Disaptch Data 对象重要概念-队列主..
2020-08-31 14:59:01 214
原创 swift 多线程,CocoaOperation,Operation + OperationQueue
两个都是面向对象的取消,依赖,优先级处理,复杂逻辑,保存业务状态,子类化Operation分为两类Operation相当于父类BlockOperation继承父类 可以用传递闭包进行操作Opreation分别有四种状态isReady isExecuting isFinished isCancelled运行状态有两种sync 同步需要实现main()方法async 异步 (网络操作)start() 开启线程方法isAsynchronous 是否异...
2020-08-31 14:41:49 429
原创 普通键盘如何改成和mac一样操作
背景。普通键盘上面的command 正好是option 反之option也是command这样加上windows键盘 就要适应三套布局。。气都气死掉所以我们要把普通键盘适配的和mac 键盘一样系统偏好设置->键盘->右下角修饰键盘修改option 键盘->command修改commadn键盘->Option这样就可以和mac上面的软键盘保持一致了注意是修改外接键盘 记得在选择键盘上面选对键盘、选不对也没关系我们首先排除最后一个 然后两个都.
2020-08-31 11:33:38 9322
原创 Swift 多线程、为什么几乎所有的gui 都是单【主】线程的
https://community.oracle.com/blogs/kgh/2004/10/19/multithreaded-toolkits-failed-dream大概就意思就是。。如果是多线程渲染。虽然速度很快,但是问题会出现很多那么多线程可以做什么?网络请求 ,io,计算,数据模型转换等等如图,上面是理想多线程与下面是现实多线程多线程Thread 最原始,裸露Cocoa Operation(Operation 和OperationQueue) 封装最好Gr.
2020-08-31 00:20:48 379
原创 swift泛型下标
//: FROM https://www.anuomob.comimport UIKitprotocol Container{ associatedtype Item mutating func append(_ item:Item) var count:Int{get} subscript(i:Int)->Item {get} }extension Container{ subscript<Indices:Sequen.
2020-08-30 23:38:00 167
原创 swift 泛型中的where 比较两个数组是否相等
//: FROM https://www.anuomob.comimport UIKitprotocol Container{ associatedtype Item mutating func append(_ item:Item) var count:Int{get} subscript(i:Int)->Item {get} associatedtype Iterator:IteratorProtocol where Iterator.E.
2020-08-30 23:20:00 1040
原创 swift 协议泛型associatedtype
协议 中不支持<T>这中方式写泛型需要使用associatedtype关键字protocol Container{ associatedtype ItemType mutating func append(_ item:ItemType) var count:Int{get} subscript(i:Int)->ItemType{get}}可以实现协议看下具体如何使用//: FROM https://www.anuomob.com.
2020-08-30 22:38:17 3221
原创 swift 泛型中的类型约束
//: FROM https://www.anuomob.comimport UIKitfunc firstIndex(of valueToFind:String,in array:[String])->Int?{ for (index,value) in array.enumerated(){ if value==valueToFind{ return index } } return nil}let .
2020-08-30 21:22:57 312
原创 swift 泛型与扩展
//: FROM https://www.anuomob.comimport UIKitstruct Stack<Element> { var items = [Element]() mutating func push(_ item:Element){ items.append(item) } mutating func pop() ->Element?{ if(items.count > 0){.
2020-08-30 03:02:09 303
原创 Chrome 浏览器大更新!标签页管理超好用,加载速度提升 10%
这个世界上使用浏览器的有两类人,一类是极简主义者,浏览器中永远只有几个选项卡;而有些人则是「选项卡收藏家」,在浏览器中同时开几十个甚至上百个页面。Google 的 Chrome浏览器为这两类人「操碎了心」,只好提供全新的选项卡组织形式。在 8 月 25 日发布的大版本更新中,Chrome 发布了不少可以提升效率的功能,比如选项卡分类、选项卡预览、跨平台传送……虽然它们看起来与「提升效率」不沾边,但却实实在在地节省了使用者的时间。▲Chrome 分组功能示意图. 图片来自:Google ..
2020-08-28 18:34:02 661
原创 mysql 自定义排序field
status 是整数 值有1、2、-1正常写法order by `status` desc"但是我们如果想要按照1 2 -1的顺序排序可以这么写order by field(`status`,1,2,-1)
2020-08-28 15:34:47 170
原创 swift 协议和扩展
在扩展里添加协议遵循下面代码是伪代码 不能执行 知识为了帮助理解你可以扩展一个已经穿在的类型来采纳和遵循一个新的协议,旧算时你无法访问现有的类型的源代码也行,扩展可以添加新的属性、方法、和下标到已经存在的类型。并且因此允许你添加协议需要的任何结果//: FROM https://www.anuomob.comimport UIKitprotocol TextRepresentable{ var textualDescition:String{ get }}extensio
2020-08-27 22:45:53 262
原创 swift 协议
协议的语法自定义类型声明时,将协议名放在类型名的冒号之后来表示该类型采纳一个特定的协议,多个协议可以用逗号分开列出。若一个类拥有父类,将这个父类名放在其采纳的协议名之前,并用逗号分隔。//: A UIKit based Playground for presenting user interfaceimport UIKitprotocol SomeProtocal { }protocol FirstProtocol { }protocol AnotherProt
2020-08-27 21:09:58 194
原创 swift extension【输入下标获得下标的数字】
扩展为现有的类,结构体,枚举类型,或协议添加了新功能,这也包括了为无访问权限源代码类扩展的能力,(即所谓的逆向建模)扩展和Obective-C中的category类似,(与oc的分类不同的是,swift的扩展没有名字。)extension的能力。添加计算实例属性和计算类型属性,//: A UIKit based Playground for presenting user interfaceimport UIKitextension Double { var km:Doubl
2020-08-27 17:37:07 329
原创 swift 初始化和反初始化
//: A UIKit based Playground for presenting user interfaceimport UIKitstruct Fahrenheit{ var temperatrue:Double init(){ temperatrue = 32.0 } }var f = Fahrenheit()print("The default temperatrue is \(f.temperatrue)℃ Fahrenheit.
2020-08-27 16:32:39 173
原创 swift 下标 subscript
类、结构体、和枚举可以定义下标。它可以作为访问集合,列表或序列成员元素的快捷方式。你可以使用下标通过索引值来设置或检索值而不需要为设置和检索分别使用实例方法。你可以作为一个类型定义多个下标,并且下标会基于传入的索引值的类型选择合适的下标重载使用,下标没有限制单个纬度,你可以使用多个输入形参来定一下标以满足自定义类型的需求。下标脚本允许你通过在实例名后面方括号内写一个或多值对该类的实例进行查询。它的语法类似于实例方法和计算属性,使用关键字subscript来定义下标,并且指定一个或多个输入形式参数和返
2020-08-26 23:24:36 209
原创 swift 在实例方法中修改属性 mutating
结构体和枚举是值类型,默认情况下。值类型不能被自身的实例方法修改。你可以在选在在func关键字前放一个mutating关键字来指定可以修改属性//: A UIKit based Playground for presenting user interfaceimport UIKitstruct Point{ var x = 0.0,y = 0.0 mutating func moveBy(x deltaX:Double,y deltaY:Double){ x+=
2020-08-26 21:01:54 498
原创 swift 属性观察者 willset didset 类型属性 class static
willSet 会在该值被存储之前被调用didSet 会在一个新值被存储后调用如果你实现了一个willSet观察者,新的属性值会以常量形式参数传递。你可以在你的willSet实现中为这个参数定义名字,如果你没有为他命名,那么他会使用默认的名字newValue如果你实现了一个didSet观察者,一个包含旧属性的常量形式参数将会被传递。你可以为他命名,也可以使用默认的形式参数名 oldValue 如果你在属性自己的didSet观察者里给自己赋值,你赋值的新值就会取代刚刚设置的值//: A UI
2020-08-26 20:43:06 204
原创 swift 函数编程
读入一个文本,确定所有单词的使用频率并从高到底排序,打印出所有单词以及其频率列表先不解决频率问题 先看下不使用高阶函数//: A UIKit based Playground for presenting user interfaceimport UIKit//去掉一些语气次 不加入计算let NON_WORDS:Set = ["the","and","of","to","a","i","it","in","or","is","as","so","but","be"]//传统解决方法
2020-08-26 17:05:06 174
原创 swift 高阶函数
map对于原始集合里每一个元素,以一个变换后的元素替换之 行程一个新的集合filter对于原始集合里面的每一个元素,通过判断来将其丢弃或者放进新的集合reduce对于原始集合里的每一个元素,作用于当前累积的结果上flatMap对于元素是集合的合集,可以得到单级的集合//: A UIKit based Playground for presenting user interfaceimport UIKitlet results = [[1,2,3],[4,5,6],[
2020-08-26 14:15:49 199
原创 swift逃逸闭包和自动闭包
当闭包作为一个实际参数传递给一个函数的时候,并且它会在函数返回之后调用我们就说这个闭包逃逸了,当你声明一个接受闭包作为形式参数的函数时,你可以在形式参数前写@escaping来明确闭包是允许逃逸的。闭包可以逃逸的一种方法是被存储在定义与函数外的变量里,比如说,很多函数接受闭包实际参数来作为启动异步任务的回调。函数在启动任务后返回,但是闭包要直到任务完成--闭包需要逃逸,以便于稍后调用//: A UIKit based Playground for presenting user interface
2020-08-26 14:01:38 1080
原创 闭包捕获值
一个闭包能够从上下文捕获已被定义的常量和变量, 即使定义这些常量和变量的原作用域已经不存在,闭包仍能够在其函数体内引用和修改这些值//: A UIKit based Playground for presenting user interfaceimport UIKitfunc makeIncrementer(forIncrement amount:Int)->()->Int{ var runingTotal=0 func incrementer()-> In
2020-08-25 18:24:47 268
原创 swift 闭包
闭包时可以在你的代码中被传递和引用的功能性独立代码快闭包能够捕获和存储定义在其上下文中的任何常量和变量的引用,这也就是所谓的闭合并包裹那些常量和变量,因此被称为闭包,Swift能够为你处理所有关于捕获的内存管理的操作,在函数章节中有介绍的全局和内嵌函数,实际上是特殊的闭包。闭包符合如下三种形式的一种:1、全局函数时一个有名字但不会捕获任何值的闭包2、内嵌函数时一个有名字且能从其上层函数捕获值的闭包3、闭包表达式是一个轻量级语法所写的 并且可以捕获其上下文中常量或变量值的没有名字的闭包
2020-08-25 18:08:35 111
原创 swift 内嵌函数
可以在函数内部定义另外一个函数。这就是内涵函数内嵌函数在默认情况下在外部是被隐藏起来的。但却人人可以通过包裹他们的函数来调用他们。包裹的函数也可以返回内部的一个函内嵌函数来在另外的范围里使用这个是java没有的语法,,//: A UIKit based Playground for presenting user interfaceimport UIKitfunc chooseStepFunction(backward:Bool)->(Int)->Int{ func
2020-08-25 16:53:18 269
原创 swift 数组切片 arraySlice
ArraySlice时数组或者其他ArraySlice的一段连续切片,和原数组共享内存。当要改变AraySlice的时候,ArraySlice会copy出来,行程单独内存,ArraySlice 拥有和Array基本完全类似的方法//: A UIKit based Playground for presenting user interfaceimport UIKitlet colors = ["Neutral","white","Black","Orange","Red","Yello
2020-08-25 16:29:19 2750
原创 swift 数组的添加和删除
append(_:)在末尾添加一个元素append(contentsOf:)在末尾添加多个元素//: A UIKit based Playground for presenting user interfaceimport UIKitvar array = [(42,"erro2"),(41,"erro1"),(43,"erro3")]array.append((40,"error0"))array.append(contentsOf: [(42,"erro2"),(41,"erro1"
2020-08-25 16:07:33 2891
原创 swift 数组是否包含 查找数组元素 查找数组索引 查找最大元素和最小元素
contains(_:)判断是否包含给定元素contains(where:)判断数组是否包含复合给定条件的元素判断所有元素是否符合某个条件allSatisfy(_:)判断数组的每一个元素都复合给定的条件//: A UIKit based Playground for presenting user interfaceimport UIKitvar array = [Int](6..<20)print(array.allSatisfy({$0>=5}))print(a
2020-08-25 15:16:57 6682
原创 swift 数组遍历 forEach 、enumerated、iterator、indices
//: A UIKit based Playground for presenting user interfaceimport UIKitlet fiveZs = Array(repeating: "Z", count: 5)//数组遍历//for in//for each// 无法使用break 或continue跳出或者跳过循环// 使用retrun 只能退出当前一次的循环体let numbers=[Int](0...7)numbers.forEach{ (num) i.
2020-08-25 11:41:25 3719
原创 swift 快速创建数组
常规创建就不多介绍了。介绍下比较好玩的//: A UIKit based Playground for presenting user interfaceimport UIKitlet fiveZs = Array(repeating: "Z", count: 5)print(fiveZs)let numbers = [Int](0...7)print(numbers)let person=["zhangSan":27,"lisi":18]let names=[String](p.
2020-08-25 11:24:35 821
原创 swift 模式和模式匹配
模式代表单个值或者复合值的结构例如元祖(1,2)的结构是由逗号分割的,包含两个元素的列表,因为模式代表一种值的结果,而不是特定的某个值,你可以利用模式来匹配各种各样的值,比如,(x,y)可以匹配元祖(1,2),以及任何含两个元素的元祖,除了利用模式匹配一个值外,你可以从复合值中提取出部分或全部值,然后分别把各个部分的值和一个常量或变量绑定起来。Swift 中的模式分为两类,一种能成功匹配任何类型的值,另一种在运行时匹配某个特定定值时可能会失败。第一类模式用于结构简单变量,常量和可选绑中的值,
2020-08-24 19:53:21 221
原创 swift guard 与检查API的可用性 版本适配
guard 语句类似if基于布尔值表达式来执行语句,使用guard语句来条件必须是真才能执行guard之后的语句。与else不同,guard语句总是有一个--else分局里的代码会在条件不为真的时候执行看下面箭头code//: A UIKit based Playground for presenting user interfaceimport UIKitfunc isIPAddress2(ipAddr:String)->(Int,String){ let
2020-08-24 16:58:34 159
原创 win10用批处理关闭进程的方法技巧
taskkill /f /im notepad.exe这儿的notepad.exe是系统进程名字,实际的系统进程,大伙儿自身看见实际操作,随后按回车键即可
2020-08-24 01:11:22 2073
原创 swift 控制转移 switch fallthrough while退出循环 标记
swift 中的switch语句 去掉了break语法但是如果遇到了需要case穿透的地方可以添加此关键字 fallthroughcode//: A UIKit based Playground for presenting user interfaceimport UIKitlet somePoint=(2,-2)switch somePoint { case let(x,y) where x==y : print("(\(x),\(y))is on
2020-08-23 12:47:59 288
原创 swift 牛逼的地方,改动很牛的地方 switch 语法
不用再写break,匹配到就返回不再有之前的case 穿透 但是可以逗号分割,但是每一个case的函数体必须要包含至少一个可执行的语句在一个switch的case中匹配多个值可以用逗号分割,并且可以写成多行//: A UIKit based Playground for presenting user interfaceimport UIKitlet a:Character = "a"switch a {case "a","A": print("the letter A.
2020-08-23 03:01:18 258
原创 swift 循环for in高级用法 分段区间 streed from to by through 、while
使用stride(from:to:by:)函数来太哦过不想要的标记闭区间也同样适用,使用stride(from:through:by:)即可code//: A UIKit based Playground for presenting user interfaceimport UIKitlet minuteInterval = 5for tickMark in stride(from: 0, to: 50, by: minuteInterval){ print(tickMar
2020-08-23 01:47:16 663
原创 swift 自定义运算符
除了实现标准运算符,在swift当中还可以声明和实现自定义运算符(custom operators)新的运算符要在全局作用域内,使用operator 关键字进行声明,同时还要指定prefix 、infix或者 postfix限定符code//: A UIKit based Playground for presenting user interface import UIKitstruct Vector2D{ var x = 0.0, y = 0.0}prefi.
2020-08-22 23:07:28 370
Android 官方推荐 : DialogFragment 创建对话框
2018-01-15
各种android弹出dialog效果以及各种dialog样式
2018-01-03
Android玻璃破碎效果
2017-11-04
android动画背景 as版本
2017-11-04
Synergy 1.6.2 安装包 Windows+Linux.
2017-11-03
Openssh生成key hash
2017-09-22
android开发工具类
2017-09-10
Volley框架之网络请求和图片加载
2017-09-01
Android高手进阶之自定义View,自定义属性(带进度的圆形进度条)
2017-07-16
安卓投屏助手(ARDC)最新版
2021-01-26
SwitchHosts.rar
2019-05-30
Android键盘键名和键值列表 Android虚拟键码表
2018-05-14
android 音频混合在一起Demo
2018-05-13
折叠效果侧边栏
2018-04-14
Meterial风格界面
2018-03-21
android 很棒的UI合集 都是git地址很不错的
2018-02-27
ConvertToUTF
2018-02-11
炫酷的任意两张图片进度条360cpu扫描效果
2018-02-05
非常不错的图片选择器
2018-01-13
vue加载 element-ui el-table报错
2022-01-20
想问一个大家都想知道的问题。怎么赚钱【有创业经验,或者是赚到钱的人来回答】
2021-04-13
andorid6.0如何通过一个按钮点击后接听电话
2017-07-25
as 怎么跳转到最后一行 或者说快捷键是什么????????
2017-06-14
怎么反编译已经混淆的代码
2017-01-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人