自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (2)
  • 收藏
  • 关注

原创 安全使用https

由于HTTP是明文传输协议,数据在传输过程中很容易泄露或者被劫持,所以HTTPS越来越普及,但是如果使用不当,依然会有安全隐患。为什么HTTPS依然会被劫持HTTPS劫持其实很常见,抓包工具Fiddler就是这么做的著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。作者:连山归藏来源:知乎第一步, fiddler向服务器发送请求进行握手, 获取到服务器的CA证...

2018-10-31 22:44:42 804

原创 Swift学习笔记-扩展

扩展能给已有的类型(即使没有源代码)添加功能,包括计算属性,协议,初始化方法,新方法,嵌入类型,注意,扩展不允许添加存储属性类型别名使用typealias关键字可以给类型提供一个别名,例如下面代码中的XYString,它和String用法一样import Foundationtypealias XYString = Stringvar str1:XYString="abcdefg"...

2018-10-31 21:51:26 201

原创 Swift学习笔记-错误处理

错误分为可恢复的错误和不可恢复的错误,可恢复的错误指的是能预见并处理的错误,例如文件不存在,网络连接失败等;不可恢复的错误指的是一类特殊的bug,例如强制展开值为nil的可空实例,数组越界访问等;如果发生错误没有处理,程序就会停止运行。遗憾的是Swift中似乎只能处理可恢复的错误。断言Swift中使用assert添加断言,第一个参数表示要检查的条件,为true时什么也不做,为false时停...

2018-10-31 00:29:31 234

原创 Swift学习笔记-协议

Swift中的协议类似于Java中的接口,不过在Swift中,结构体,枚举,类都能使用协议基本用法import Foundation//声明协议protocol XYData{ var height:Int{get set} var color:String{get} func self2Str()->String}//实现协议struct Pers...

2018-10-29 21:43:03 287

原创 Swift学习笔记-值类型与引用类型

Swift中Array,Dictionary,Int,String等都是用结构体来实现的,所以这些都是值类型,而Class则是引用类型值类型值类型在赋值或者参数传递的时候总会复制自己,Swift标准库中的值类型实现了写时复制功能,每次复制的时候都会共享同一片存储空间,只有真正改变实例数据时才会产生一份副本import Foundationvar str1="hello world"...

2018-10-29 00:41:58 285

原创 Swift学习笔记-初始化

结构体的默认初始化swift为结构体提供了默认初始化方法,当结构体所有属性都有默认值时,可以使用空白初始化方法struct Person{ var height=170 let color="black"}var person=Person()成员初始化方法是默认初始化方法的另外一种形式,注意常量属性如果有默认值则不能使用初始化方法,因为常量只能初始化一次struct...

2018-10-25 23:44:31 373

原创 Swift学习笔记-属性

属性分为存储属性与计算属性,存储属性可以有默认值,计算属性则根据已有信息返回某种计算结果。

2018-10-24 22:54:22 222

原创 Swift学习笔记-结构体和类

结构体结构体由属性和方法构成,其中属性可以是变量或者常量,可以在定义的时候给出属性的默认值struct Worker{ //身高 var height=170 //颜色 var color="yellow"}和枚举类型一样,结构体也是值类型,所以修改属性的方法也要标记为mutatingstruct Worker{ //身高 v...

2018-10-23 23:38:16 235

原创 Swift学习笔记-枚举

定义枚举类型定义的语法和C/C++很像,只不过前面多了case语句enum TextColor{ case blue case black case green case red case white}创建枚举实例第一次创建枚举实例的时候必须指定枚举枚举类型和值,之后的代码可以省略类型//显示类型声明var color1:TextColor=...

2018-10-23 22:34:22 209

原创 Swift学习笔记-闭包

闭包(closure)是一种更加紧凑,轻量的匿名函数,类似于Java中的lambda表达式swift中的闭包语法如下{(parameters)->returnType in...}接下来我们看一段数组排序代码, 该代码将函数sortAsc当做参数传递let counts=[1,10,6,2,50,8,24]func sortAsc(n1:Int,n2:Int)->...

2018-10-22 23:49:31 204

原创 Swift学习笔记-函数

最简单的函数func printHello(){ print("hello world")}printHello()带参数的函数func printHelloWithName(name:String){ print("hello \(name)")}printHelloWithName(name: "xy")外部参数swift中参数名可以填两个,前者是外部...

2018-10-22 22:39:35 265

原创 Swift学习笔记-集合

集合也是一种无序容器类型,且集合中的元素不能有重复的,适用于黑名单,白名单等需要快速查找的地方创建集合//创建空集合var whiteList=Set<String>()var blackList:Set<String>=[]//创建集合并填充值var colorList:Set<String>=["green",&

2018-10-19 00:20:40 197

原创 Swift学习笔记-字典

字典是一种无序的容器类型,其中的元素为键值对(key-value pair),其中键类型必须是可散列的,swift的基本类型都是可散列的,例如String,Int,Float,Double,Bool创建字典//创建空字典var dict1:Dictionary<String,Double>=[:]var dict2=Dictionary<String,Double&g...

2018-10-18 23:56:50 184

原创 Swift学习笔记-数组

创建数组//创建空数组var strList1:Array<String>=[]var intList1:[Int]=[]//创建并初始化数组var strList2:Array<String>=["red","black"]var intList2:[Int]=[1,2,3,4]//使用类型推断创建数组var strList3=

2018-10-18 22:35:17 339

原创 Swift学习笔记-可空类型

在C++和Java中对象有可能为nil,但是在swift中对象一般不能为nil,除非是可空类型同时swift提供了一些简洁的语法让我们安全地访问可空类型这一特性减少了类似(if (obj==nil)){…}的代码声明可空类型在普通类型后面加一个问号就成为了可空类型,普通类型必须显示地给出一个初始值,而可空类型不用,因为它有一个默认初始值nilvar intValue:Int?pri...

2018-10-18 01:41:10 667

原创 C++中的类型转换

C++中有四种类型转换,const_cast ,static_cast,reinterpret_cast,dynamic_castC风格类型转换C风格的类型转换即强制转换最简单粗暴,管你是什么类型,直接扩号扩起来了事,缺点就是代码表达不够清晰,容易造成隐患float count = 2.0f;int totalCount = (int)count;const_cast该转换在编译...

2018-10-17 01:16:44 157

原创 Swift学习笔记-String

在Swift中,String由字符构成,而字符由一个或多个Unicode标量构成遍历字符串字符var str="秋天到了123"for c in str{ print("'\(c)'")}判断字符串是否为空var str="秋天到了123"print(str.isEmpty)获取字符串中字符数量var str=&

2018-10-16 23:23:51 187

原创 Android一键V2签名,校验

一般Android加固都自带重签名功能,但是有的加固只加了V1签名,所以还是得自己手动签名下,下面是我用python写的签名以及校验脚本一键V2签名# -*- coding: utf-8 -*-#python2.7import osimport os.path#Android BuildTools路径buildToolDir='...\\build-tools\\27.0.3\...

2018-10-16 17:41:40 2017

原创 数学笔记-极限

当x趋于n的时候,f(x)的极限等于mlim⁡x→nf(x)=m \lim_{x \to n} f(x)=mx→nlim​f(x)=m左极限和右极限在n的后方添上一个减号代表该极限为左极限,即当x从比n小的值趋于n的时候的极限lim⁡x→n−f(x)=m \lim_{x \to n^-} f(x)=mx→n−lim​f(x)=m在n的后方添上一个加号代表该极限为右极限,即当x从比n大的...

2018-10-16 00:55:33 1653

原创 Swift学习笔记-循环

文章目录循环for-in循环while循环repeat-while循环break与continue循环for-in循环最简单的for-in循环如下,输出结果为0 1 2 3 4 5for i in 0...5 { print(i)}你也可以省略迭代器i,下面的代码会输出同样的结果,注意,swift中不支持++运算符var i=0for _ in 0...5{ pr...

2018-10-15 22:06:11 335

原创 在okhttp3,WebView中忽略HTTPS证书校验

在APP开发过程中,后台使用的可能是自签的Https证书,如果不忽略证书校验,会出现Trust anchor for certification path not found的错误Okhttp3忽略HTTPS证书校验import java.security.SecureRandom;import java.security.cert.X509Certificate;import j...

2018-10-15 18:38:44 1111

原创 Android中利用productFlavors配置多渠道

build.gradle(app)设置android { flavorDimensions "default" productFlavors{ //不同渠道 360{ dimension "default" //替换AndroidManifest中的值 manifestPl...

2018-10-15 14:36:47 1486

原创 Swift学习笔记-条件判断

圆括号在条件判断以及循环中,大多数圆括号都可以省略掉var x=2var y=3if x>3{ //}switch x {case 1: y=1default: y=2}while x>3{ }print(y)if语句Swift中的if语句和C/C++一样,只不过多了两个比较运算符===,计算两个实例是...

2018-10-14 23:41:04 346

原创 Swift学习笔记-空格

Swift中运算符两边的空格必须是对称的,要么两边都没空格,要么两边都有空格(和空格数量无关) != ?? 等运算符左右两边必须有空格,原因是为了防止歧义let x=2let y=3//错误,左边有空格,右边无空格let value =x*y//错误,左边无空格,右边有空格let value= x*y//错误,乘法运算符两边空格不对称let value=x *ylet va...

2018-10-14 22:29:50 476

原创 Swift学习笔记-数字

Int/Uint一个整数字面常量没有明确数据类型的时候,默认会被推断为Int 编译的目标平台为32位时,Int和Int32长度相同 编译的目标平台为64位时,Int和Int64长度相同 Uint为Int的无符号版本其他整数类型Int8,Int16,Int32,Int64 UInt8,UInt16,UInt32,UInt64使用max,min获取整数类型最大值与最小值pri...

2018-10-14 21:03:36 211

原创 Swift学习笔记-基本知识

变量,常量,分号Swift中使用var声明变量,使用let声明常量,如果不指定类型,编译器会自动推断变量/常量的类型。注意在Swift中,代码结尾的分号是可选的,只有在一行内有多条代码才用分号分隔。import Cocoa//自动推断为Stringvar str = "Hello, playground"//输入str到控制台print(str)//常量let numb...

2018-10-14 17:58:22 192

原创 Objective-C学习笔记-Category

Category可以为任何已有类添加或者替换方法,即使没有源代码,但是不能添加实例变量#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGIN@interface NSString(TestClass)-(int) getTestValue;@endNS_ASSUME_NONNULL_END#impor...

2018-10-13 00:34:02 122

原创 Objective-C学习笔记-KVO

1.KVO(key-value observering)是指当对象的属性值改变的时候,允许另外一个对象接受通知,其中context可以用来区分该通知是发给基类还是自己的。#import "TestObserver.h"@implementation TestObserver- (void)observeValueForKeyPath:(NSString *)keyPath ofOb...

2018-10-13 00:17:24 148

原创 Objective-C学习笔记-KVC

1.KVC(key-value-coding)能够让程序通过名称直接存取属性,KVC有关方法定义在NSObject,KVC违背了对象封装理念,因为即使属性声明为readonly,使用KVC依然可以修改实例变量的值。#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGIN@interface TestClass : N...

2018-10-12 23:30:03 169

原创 Drawable文件夹不正确导致的内存升高问题

1.玩手机的时候点了下应用管理,发现一个问题,我自己写的APP内存占用竟然达到了200多M,而手机中其他应用普遍都在100M以内,经过排除,发现是图片加载引起的2.写了一个Demo发现,一张1920*1080的图片放在drawable文件夹就会使APP多70M内存,但是1920*1080*4也才7M,Google一番后发现可能和drawable文件夹的名称有关系,将图片换到drawable-x...

2018-10-12 22:47:20 309

原创 Objective-C学习笔记-属性

1.属性的存取特性readwrite,自动创建存取方法,默认特性 readonly,只创建取方法2.属性的多线程特性atomic,使用锁机制确保对该属性的操作的原子性,默认特性 nonatomic,无原子性,所以速度会快一点,建议使用的特性3.属性的引用相关特性strong,在进行存操作时,会持有传进来的对象,放弃原有对象,默认特性 weak,在进行存操作时,不持有传进来的对...

2018-10-11 23:47:07 203

原创 Objective-C学习笔记-init

1.如果一个类没有实现init方法,那么在调用init初始化的时候所有成员变量都会被初始化为02.覆盖NSObject的init方法,instancetype代表返回当前类的实例,在旧版本OC里,还会使用id作为返回类型。因为基类的构造函数有可能返回nil,所以这里需要判断是否为空,这是苹果公司推荐写法,不过很多代码没有做这一步检查-(instancetype)init{ se...

2018-10-11 22:50:02 401

原创 MVC,MVP,MVVM区别

1.MVC是模型(Model)-视图(View)-控制器(Controller)的缩写Model负责保存并管理数据 View负责数据的展示并响应用户的输入 Controller负责程序的逻辑功能2.其具体流程为用户发起操作 View响应操作后交给Controller处理 Controller将处理后的数据放入Model保存 Model将数据反馈给View3.MVP中把Co...

2018-10-10 00:15:36 377

原创 Objective-C学习笔记-plist文件

1.苹果系统中大量使用了plist文件来保存配置信息,plist文件由以下对象组成NSArray NSDictionary NSString NSData NSDate NSNumber2.通过NSArray和NSDictionary的内建方法可以读写plist文件,代码如下#import <Foundation/Foundation.h>int main(...

2018-10-09 00:35:41 555

原创 Objective-C学习笔记-协议

1.OC中的协议类似于Java中的Interface,一个类也可以实现多个协议,但是Java中可以通过匿名内部类直接“new”一个Interface(例如SetOnClickListener(new XXX),OC中似乎不能这么做2.可以通过@required和@optional标注哪些方法是必须的,哪些是可选的,可以通过NSObject中的方法respondsToSelector来判断一个对...

2018-10-09 00:08:17 119

输入法注入之delphi版

输入法注入之delphi版。。。。。。。。。

2010-08-25

delphi小键盘控件

模仿QQ小键盘写的一个小键盘控件,可以自定义小键盘的各种颜色,大小,位置,字体,还可以使用渐变图像代替颜色,使按键更加好看!

2010-05-28

空空如也

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

TA关注的人

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