自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

转载 区块链基础知识笔记(3) -- 数字签名和公私钥

数字签名 数字签名相当于现实中纸质签名,为了证明某件事确实是经过我确认的,并留下证据以供验证。在说数字签名之前,需要了解一个概念,非对称加密。在现实生活中,如果我和A希望秘密通信,及时通信内容被截获,外人也无法得知我们说的什么,最简单的方法是将信息加密。举个栗子,我和A事先约定好,通信的内容都加1,如果我想告诉A的内容是123,那么我发过去的内容是234。A在收到内容后,对每个数字减1,便得...

2018-06-18 22:11:40 1711

转载 区块链基础知识笔记(2) -- 哈希指针及数据结构

哈希指针 哈希指针是一种数据结构,是一个指向数据存储位置及其位置数据的哈希值的指针。一个普通指针只能告诉你数据的位置,哈希指针除了告诉你数据位置,还提供一种方法让你验证数据是否被篡改过。区块链 通过哈希指针构建的链表,就称为区块链。区块链中的区块中包含了上一个区块的哈希指针,即可以指向上一区块的位置,也可以验证上一个区块有没有被修改 区块链的一大特性就是防篡改。以上图为例,最左边的区...

2018-06-18 11:17:23 5128

转载 区块链基础知识(1) -- 密码学哈希函数

密码学哈希函数是区块链的根基,也是很多安全系统的基石。密码学哈希函数包含两个概念,哈希函数和密码安全。哈希函数是一个数学函数,具有以下三个特性: - 其输入可以为任意大小字符串 - 它产生固定大小的输出(比如256位的输出) - 它能进行有效的计算,且计算时间合理,对n位的字符串,其哈希计算的复杂度为O(n)要使得哈希函数达到密码安全,又需要哈希函数具有以下三个附加特性: - 碰撞...

2018-06-18 10:11:55 2096

转载 以太坊私有链搭建教程

写在前面写这个主要是为了记录下自己的学习过程,同时如果能帮助到同样想搭建私有链的朋友们,那是再好不过了Step 1 环境搭建私链搭建有三宝,环境,终端和钱包。我这里用到的是Geth客户端,所以环境当然就是指Go语言运行环境。Ethereum的终端(客户端)有很多语言(C++,Python…bala..bala)的实现版本,这里我用的是Go语言的实现版本,也是使用较多的版本,这里就...

2018-02-09 20:20:34 6218 5

原创 iOS开发常用技巧-常见问题篇

1.需要在某些情况下在外部设置自定义cell中imageView的image时,如果直接设置imageView.image的话,可能会出现UI布局走样。这时可以在cell的头文件里声明一个UIImage,在UIImage的set方法中设置imageView的image,外部访问公开的UIImage来达到设置cell中imageView的image的目的。2.比较两个UIImage的图片是否相同,可以

2016-11-02 14:07:49 642

原创 UITextField和UITextView限制字数

在日常开发中碰到限制字数的需求也是常见的,以UITextField为例(UITextView同理),看看如何限制字数。这里我只是简单实现这个功能,如果是字符比较混杂,比如表情,各种类型的文字等的计数不知道这段代码能不能正确限制字数。 首先当然要实现UITextField的代理:- (BOOL)textField:(UITextField *)textField shouldChangeCharac

2016-09-09 16:39:22 427

原创 MJExtension 之模型建立后没有效果

最近在项目中使用了MJExtension,因为项目中使用的Json有很多层,于是在一个模型类文件中写了很多类,然后高高兴兴地使用MJExtension来转换模型。此时,意外却发生了,居然转换出来的模型没有数据!!怎么回事!那么强大的MJExtension居然失效了!天空顿时一片灰暗,乌云密布。但我撑起雨伞,定睛一看,发现在模型类文件的.m文件中,只有默认生成的一个implement,其它类的impl

2016-07-26 22:57:01 665

原创 iOS TableView填坑之一 Cell显示不完整

最近在项目开发中发现TableView的Cell显示不完整,如图,这可懵逼了,虽然用力往上拖动,能让Cell显示完整,可一松手,又弹了回去,只能显示半 个。虽然打码了,但是还是能看清楚最下面的Cell只有一半啊我第一时间想到了内边距这个东西,于是一阵修改,又是禁止scrollview自动调整内边距,又是给TableView设置内边距,忙活了一个小时,发现并没有什么卵用。这可怎么办啊,还是求出下万能

2016-07-26 22:49:49 3456

原创 iOS实用技能之同一个String不同颜色的字

前言最近在开发中碰到个问题,需要一个字符串的数字为红色,其余为黑色。思考了半天,没思路,问了下同事,才了解到有AttributeString这个东西,看来我还是个新手啊,在这里做个记录,方便查阅吧。要达到效果,比如 –> 这样数字8 是红色的需求就可以用NSMutableAttributedString来实现。废话不多说,直接上代码//这里只是示例,你要求出需要设置颜色的字符的数量,这里为color

2016-07-26 21:51:59 1711

原创 项目总结4 类似网易云音乐导航栏指示器与Scrollview互动(个性推荐、歌单等)的简单实现(二)

上篇文章讲到指示器的添加,今天我们来添加一个scrollview,使得指示器能跟随scrollview变化,scrollview也能根据指示器的位置不同更改自己需要显示的view。还是以网易音乐的界面为例,红色指示器下面对应了一个view,其它三个指示器按钮也对应了各自的view所以,我们需要创建一个scrollview作为底层view,然后在scrollview上添加4个ViewControlle

2016-06-27 21:43:23 1153 1

原创 项目总结3 类似网易云音乐导航栏指示器(个性推荐、歌单等)的简单实现(一)

我们先来看看网易云音乐导航栏指示器是什么样的。箭头指向的蓝色框就是导航指示器,点击之后下面的view会跟着移动,每个button下面还有个小红线跟着。这个效果其实不难实现,我们先来分析分析。在iOS里好像没看到有指示器这么个控件,所以,指示器应该是我们自己添加到view上的代码实现的。我们先来看看这个4个分类,我们发现个性推荐、歌单、主播电台和排行榜都能点击,那我们首先想到的就是button,那bu

2016-06-18 12:30:05 8563 1

原创 虚拟机中的MacOSX 如何扩容

因为资金原因,暂时没办法买个MBP,只好用虚拟机。无奈当初建立虚拟机的时候硬盘给小了,导致XCode都没空间升级,重新装一个又麻烦,于是只能扩容!百度了很多,最靠谱的方法就是在虚拟机中添加一个硬盘,把系统盘恢复到新建的硬盘中。可是!这可懵逼了,还怎么玩儿。不过,我又发现可以制作硬盘映像,有活路了!干脆弄个硬盘映像,然后从映像来恢复应该可以吧。所以,我又往虚拟机里添加了个硬盘(这导致我虚拟MacOSX

2016-06-15 20:20:30 3754

原创 iOS中的内边距是什么

在iOS开发中,经常会布局UI控件中的内容,如果仅仅设置内容显示模式,比如居中,靠左等不能够满足布局需求,此时我们就会用到内边距这个东西。 那么内边距是什么的?我手画张图来解释

2016-06-13 18:01:06 2744

原创 项目总结2 UITabBarController为根视图的基础界面细节处理-返回按钮等

上一篇文章讲了如何搭建以UITabBarController为根视图的界面,虽然是个简单的基础界面,但还是有几个细节问题需要处理。TabBar中button的selectedImage不知道大家有没有注意到,在setupChildViewControllers 这个函数中设置了selectedImage,但是没有效果。有些应用,比如微博,TabBar中button选中状态是橘黄色的,而不是系统默认的

2016-06-13 17:01:16 4401

原创 项目总结1 UITabBarController为根视图的界面搭建

前言自学路上困难多啊,最近的以UITabBarController为根视图的APP很多,而且基本都有自定义的button在UITabBarController上,下面我为新手们介绍下如何创建和自定义UITabBarController中的button。Step 1 我们创建一个SingleView的项目。我们不需要从storyboard启动项目,所以删除storyboard和ViewContro

2016-06-09 23:43:07 1519

原创 iOS线程初探(四) GCD 和 NSOperation 小结

参考资料:关于iOS多线程,看我就够了GCD在GCD中,有两个概念很重要,那就是任务和队列。任务 :其实就是你需要做的事情,一个Block而已。任务有两种执行方式:同步执行和异步执行。同步执行:会阻塞当前线程,直至该任务执行完成后当前线程才接触阻塞,继续执行下面的任务。异步执行:执行任务时不会阻塞当前线程,当前线程会继续往下执行(这里有个小问题,如果我在主线程中异步调用一个任务,既然不阻塞当前线程

2016-05-04 17:22:23 666

翻译 MMDrawerController(0.6.0) 文档翻译(简介,非API文档)

Mutual Mobile Drawer Controller随着使用抽屉效果的应用越来越多,MMDrawerController应运而生。

2016-03-31 15:43:37 1133

翻译 SDWebImage 官方文档 翻译(v3.7.5 中文 简介,非API文档 )

最近正在自学iOS,看到网上有项目用SDWebImage,便找来文档看看,顺便记录一下,也方便大家阅读(官方文档地址: http://cocoadocs.org/docsets/SDWebImage/3.7.5/ 以下是翻译内容)。 Web Image SDWebImage提供了一个UIImageView的分类来支持获取远程图片。这个库提供了如下功能: 1. 提供UIImageView的一

2016-03-24 15:52:44 1433

原创 MMDrawerController 与 StoryBoard 构建和谐抽屉效果

纠结了一天都不知道怎么在storyboard中用MMDrawerController,看了下MMDrawerController+Storyboard版本的库也不知道怎么用, 网上搜了下,发现了个好方法。 (参考 http://www.wenzizone.cn/?p=470 ) 下面直接说步骤: 1.新建一个single view的工程 2.在工程目

2016-03-22 22:52:43 1420

原创 C++ OOP手册

成员函数没有被声明为虚函数,则其解析过程发生在编译时而非运行时静态成员在继承体系中只存在唯一定义,假设静态成员是可以访问的,那么无论是基类还是继承类都可以访问如果一个类被用做基类,那么这个类必须已经定义C++11 中提供了防止继承的方法,在类名后面跟一个关键字 final若已知类型转换是安全的,可以使用static_cast来覆盖掉编译器的检查工作虚函数返回值如果是类本身的引用或者指针,

2016-01-18 15:32:55 607

原创 IOS UserDefaults简介(一)

UserDefaults可以用来存储简单的数据,也可以用来定制应用的行为数据存储- (void)save{ NSUserDefaults *de = [NSUserDefaults standardUserDefaults]; [de setInteger: 20 forKey: @"intKey"]; [de setFloat: 2.0 forKey: @"float

2016-01-18 15:30:46 1344

原创 IOS JSON数据解析(一)

对于JSON数据,苹果提供了NSJSONSerializaiton类来解析。比如我们有一个json文件,那么如下代码可以获取到JSON数据:NSBundle *b = [NSBundle mainBundle];NSString *path = [b pathForResource: @"json" ofType: @".json"];NSString *content = [NS

2016-01-18 14:21:21 737

原创 IOS 网络初探(一) - NSURLConnection

在IOS中,除了最基本的socket外,苹果提供了NSURLConnection类来实现网络通信。请求服务器数据(GET方式) 请求服务器数据分成异步和同步两种方式。先来看看异步(非阻塞)。NSURL *url = [NSURL URLWithString :@"www.baidu.com"];NSURLRequest *request = [NSURLRequest requestWith

2016-01-16 14:35:09 472

原创 IOS 多线程初探(三) - GCD

这次来介绍下苹果主推的多线程使用方式,GCD。GCD全称是Grand Central Dispatch。该多线程机制性能很好。GCD声明了一系列dispatch开头的方法来实现多线程操作,dispatch方法中提供了一个Block回调来处理线程的任务。先来看一个实例:- (void)function{ dispatch_queue_t queue = dispatch_get_global

2016-01-16 11:27:41 546

原创 IOS 多线程初探(二) - Operation Object

上次简单介绍了使用NSThread来创建线程的方法。今天简单介绍使用Operation Object来创建线程Operation Object简介 将要执行的任务(即函数)封装成操作对象NSOperation,并将对象放置到NSOperationQueue中。可以设置这些任务的执行顺序和依赖关系。用NSOperation来创建线程新建一个类继承NSOperation,覆盖main方法,然

2016-01-14 11:41:04 560

原创 IOS 多线程初探(一) - NSThread

废话不多说,直奔主题。今天简单介绍下IOS中的三种创建线程的方法1. 创建NSThread对象<C++>NSThread *t = [[NSThread alloc] initWithTarget:self selector:@selector(functionName) object:nil];[t start];</C++>这是个典型的target-action方式,指定目标为self,

2016-01-13 21:29:13 428

原创 iOS Xcode 7.2 以及各种版本Xcode工具下载地址

https://developer.apple.com/downloads/这里面有所有版本的Xcode dmg文件供大家下载

2015-12-11 22:10:44 878

空空如也

空空如也

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

TA关注的人

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