自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Like Linux

我的成长日记

  • 博客(321)
  • 资源 (3)
  • 收藏
  • 关注

转载 Objective-C中的instancetype和id关键字

一、什么是instancetypeinstancetype是clang 3.5开始,clang提供的一个关键字,表示某个方法返回的未知类型的Objective-C对象。我们都知道未知类型的的对象可以用id关键字表示,那为什么还会再有一个instancetype呢?二、关联返回类型(related result types)根据Cocoa的命名规则,满足下述规则的方法:1、类方法中,以alloc或n...

2018-06-07 10:25:48 337

转载 Objective-C中的多态性分析

问题:什么叫多态?多态(Polymorphism),在面向对象语言中指的是同一个接口可以有多种不同的实现方式,OC中的多态则是不同对象对同一消息的不同响应方式,子类通过重写父类的方法来改变同一消息的实现,体现多态性。另外我们知道C++中的多态主要是通过virtual关键字(虚函数、抽象类等)来实现,具体来说指的是允许父类的指针指向子类对象,成为一个更泛化、容纳度更高的父类对象,这样父对象就可以根据...

2018-06-06 10:16:53 362

转载 解决Mac下Unity启动黑屏

在最新版的MacOS系统上(MacOS High Sierra 10.13.1),安装Unity 5.3.5f1版本,启动直接显示黑屏,没有熟悉的打开工程、登录等界面。第一次碰到这样的画面,有点懵逼。从网上搜索解决方案,有Windows下的方法,但肯定不适用于MacOS。无奈之下,自己定位问题并成功搞定。先给出解决方案,打开终端,在终端中输入以下命令:1234567cd ~/Library/Uni...

2018-06-04 15:36:40 5987 2

转载 TCP的流量控制和拥塞控制

TCP的流量控制和拥塞控制TCP的流量控制1. 利用滑动窗口实现流量控制    如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。    利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。    设A向B发送数据。在连接建立时,B告诉了A:“我的接收窗口是 rwnd = 400 ”(这里的 r...

2018-05-31 15:50:18 393

转载 C++之const限定符(顶层const,底层const)

C++之const限定符(顶层const,底层const)const初始化const的特点:用const加以限定的变量,无法改变。由于const对象定义之后就无法改变,所以必须对其进行初始化。const对象的常量特征仅在尝试改变它的时候表现出来,其他时候和变量无异。const初始化:const int bufSize = 512; //bufSize无法再改变const仅在本文件中有效const对...

2018-05-28 22:35:25 241

转载 释放对象数组:delete与delete[]

<<c++ primer>>练习   14.11   中提到: Account   *parray=new   Account[100]; delete   parray; delete   []   parray; 方括号的存在会使编译器获取数组大小(size)然后析构函数再被依次应用在每个元素上,一共size次。否则,只有一个元素被析构。 无论哪种情况,分配的全部空间被...

2018-05-28 21:33:22 5601

转载 iOS 获取类名NSStringFromClass 和 获取类NSClassFromString

一、获取类名   NSStringFromClassNSString *selfClass = NSStringFromClass([self class]);二、NSClassFromString用法起因是看蓝牙demo的时候看到这个关键字的 就搜索了一下。。+ (BOOL)isBluetoothSupported{ // Only for iOS 6.0 if(NSClassFromStrin...

2018-04-27 17:34:14 4433

转载 oc 关于头文件声明 与前向声明

参照http://blog.csdn.net/jiangwei0910410003/article/details/417747471.#import和#include的区别(当我们在代码中使用两次#include的时候会报错:因为#include相当于拷贝头文件中的声明内容,所以会报重复定义的错误但是使用两次#import的话,不会报错,他会做一次判断,如果已经导入一次就不导入了)#import...

2018-04-27 11:46:09 684

转载 iOS 并行开发

--多线程开发概览大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算。可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行。但是机器码是按顺序执行的,一个复杂的多步操作只能一步步按顺序逐个执行。改变这种状况可以从两个角度出发:对于单核处理器,可以将多个步骤放到不同的线程,这样一来用户完成UI操作后其他后续任务在其他线程中,当CPU空闲时会继续执行,而此...

2018-04-24 10:53:40 217

转载 一些重要的算法

下面是一些比较重要的算法,原文罗列了32个,但我觉得有很多是数论里的或是比较生僻的,和计算机的不相干,所以没有选取。下面的这些,有的我们经常在用,有的基本不用。有的很常见,有的很偏。不过了解一下也是好事。也欢迎你留下你觉得有意义的算法。(注:本篇文章并非翻译,其中的算法描述大部份摘自Wikipedia,因为维基百科描述的很专业了)A*搜寻算法俗称A星算法。这是一种在图形平面上,有多个节点的路径,求...

2018-04-21 10:30:50 195

原创 OC中的反射机制简单学习

题外话:    做了几年的后台开发,感觉自己知识面还是太窄了,在学iOS开发,49年入国军啊正文:    最近做SDK封装的时候,看到有个地方一大堆if else之类的判断,想到了用反射解决,如下两种方法,简单记录一下。1:performSelectortypedef void (*XXCallback)(char* data); // data为json字符串- (void)testStruc...

2018-04-13 10:49:16 1618

转载 Mac OS 任意显示器 开启HiDPI方法

研究了下,其实没怎么变化。Overrides文件夹目录位置变了而已。本人开启HiDPI现在更主要是为了截图截出2x的效果,实际调整分辨率的是另一个小显示器~已经很久用不到HiDPI的真实意义啦//对于权限问题的补充*10.11系统权限设置又改动,一些系统文件只有“系统”有权限读写,首先要关闭这个权限:开机按住 command + R,进入恢复模式,然后在“终端”中输入“

2017-12-20 00:59:58 35837 1

转载 解决找不到/usr/bin/ld: cannot find -lXX的问题

Ubuntu下遇到ld: cannot find -lXX之类的问题,提示找不到相关库文件1、如果能上网,最不用废脑子的办法:$ sudo apt-get install apt-file$ apt-file update$ apt-file search libXX.soapt-file 将列出所有包含libXX.so文件的

2017-11-14 17:52:29 21145

转载 "error while loading shared libraries: xxx.so.x" 错误的原因和解决办法

一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory原因一般有两个, 一个是操作系统里确实没有包含该共

2017-09-22 18:56:46 344

转载 CentOS下yum安装FFmpeg

一、yum安装FFmpeg1.    最偷懒的方式就是yum安装了,自动解决依赖。不过CentOS系统默认无FFmpeg源,企业版 Linux 附加软件包EPEL源也不包含,需要手动添加yum源配置/etc/yum.repos.d/dag.repo: [dag]name=Dag RPM Repository for Red Hat Enter

2017-07-11 11:28:36 606

转载 centos 7.3 安装配置python3.6.1

centos 7.3 安装配置python3.6.11.先安装一些我遇到的依赖问题(如果有依赖问题按提示安装):yum install xz gcc zlib zlib-devel2.官网下载源码包地址:https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz3.解压文件xz -d Python-3.6.

2017-07-10 17:43:26 2742 1

转载 三种方式配置Mac OS X的启动项

在Mac OS X中,有三种方式来实现启动项的配置:1)Login Items;2)StartupItems;3)launchd daemon。1.Login Items打开System Preferences,选择System -> Accounts,选择Login Items选项卡,将/Applications目录下的.app直接拖进右边的列表中。重启电脑之后就会发现列表中的程序在开机

2017-06-10 02:35:36 861

原创 C++ 带符号和无符号char类型赋值超出表示范围的情况

在C++中字符型被分为了三种:char、signed char和unsigned char。需要的注意:字符的表现形式只有两种:带符号的和无符号的,类型char具体使用哪一种由编译器决定;如果需要使用不大的整数,应该明确指出它的类型是signed char或者unsigned char。关于带符号类型:带符号类型在表示范围内正值和负值的量应该平衡,例如,8比特理论上应该可以表示-127至127,大...

2017-05-30 11:35:32 6895 2

转载 Linux下实现Huffman编码压缩算法

转自:http://blog.csdn.net/sunrier/article/details/7728488//stack.h[cpp] view plain copy/*************************************************************     FileName : stack.h  

2017-05-29 14:06:28 647

转载 c/c++ 开发中常见的坑

语言类变量初始化问题众所周知,局部变量在函数调用开始时创建,函数调用完成返回时“销毁”。值得注意的是,这里根本没有所谓的销毁、初始化的过程。局部变量的内存分配、回收是通过栈指针(esp)的减小、增大来完成的,注意函数栈从大地址向小地址增长。也就是说,函数栈只管分配和回收,至于这个地址空间里的内容, 它不关心,初始化工作要由程序员完成。同理,由malloc分配的空间,初始化工作也

2017-05-21 20:00:18 636

转载 do{...}while(0)的意义和用法

linux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处:1、辅助定义复杂的宏,避免引用的时候出错:举例来说,假设你需要定义这样一个宏:#define DOS...

2017-02-22 10:18:52 557

转载 CentOS 7中firewall防火墙详解和配置以及切换为iptables防火墙

官方文档介绍地址:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html#sec-Introduction_to_firewalld1一、firewall介绍CentOS 7中防火墙是一个非常的强

2017-02-10 10:45:33 828

转载 Kcptun 服务端一键安装脚本

经常有朋友抱怨 Kcptun 服务端安装繁琐,我花时间写了一个一键安装更新脚本。参考了 @teddysun 的SS一键安装脚本,感谢 @静逸轩 提供的测试服务器。理论上脚本支持:CentOS 6+、Ubuntu 12+和Debian 7+,但是由于测试不完全,可能存在安装失败的情况脚本已更新到v1

2016-11-11 17:49:07 27358

转载 深入理解C++的动态绑定和静态绑定

为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。关于对象的静态类型和动态类型,看一个示例:[cpp] vi

2016-11-03 09:45:55 275

转载 值得推荐的C/C++框架和库

值得学习的C语言开源项目Libeventlibev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施。其以高效出名,它可以将IO事件,定时器,和信号统一起来,统一放在事件处理这一套框架下处理。基于Reactor模式,效率较高,并且代码精简(4.15版本8000多行),是学习事件驱动编程的很好的资源。下载链接:https://github.com/lib

2016-10-28 15:04:11 1627

转载 Git(一)

我最常说的关于git使用的一个经验就是:不要用git pull,用git fetch和git merge代替它。git pull的问题是它把过程的细节都隐藏了起来,以至于你不用去了解git中各种类型分支的区别和使用方法。当然,多数时候这是没问题的,但一旦代码有问题,你很难找到出错的地方。看起来git pull的用法会使你吃惊,简单看一下git的使用文档应该就能说服你。将下载

2016-10-13 14:30:03 296

转载 远程仓库版本回退方法

1 简介最近在使用Git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客。2 问题如果提交了一个错误的版本,怎么回退版本?如果提交了一个错误的版本到远程分支,怎么回退远程分支版本?如果提交了一个错误的版本到公共远程分支,又该怎么回退版本?3 本地分支版本回退的方法如果你在本地做了错误提交,那么回退版本的方法很简单 先用下面命

2016-10-12 16:54:25 1270

转载 高并发访问数据库问题

一、数据库结构的设计   为了保证数据库的一致性和完整性,在逻辑设计的时候往往会设计过多的表间关联,尽可能的降低数据的冗余。(例如用户表的地区,我们可以把地区另外存放到一个地区表中)如果数据冗余低,数据的完整性容易得到保证,提高了数据吞吐速度,保证了数据的完整性,清楚地表达数据元素之间的关系。不要用自增属性字段作为主键与子表关联。不便于系统的迁移和数据恢复。对外统计系统

2016-09-30 14:34:57 389

转载 gdb 跟踪调试命令整理

内容源自于陈浩CSDN博客的用GDB调试程序一系列文章用GDB调试程序(一)用GDB调试程序(二)用GDB调试程序(三)用GDB调试程序(四)用GDB调试程序(五)用GDB调试程序(六)用GDB调试程序(七) GDB 调试要进行调试程序首先要生成一个含有调试信息的执行程序命令如下:gcc(g++) -g -o 文件名 源文件.c(源文件.cpp)gcc(g+

2016-08-18 16:05:57 639

转载 Nginx模块如何调试

编写nginx.conf,将nginx设置为单进程调试模式 代码  worker_processes  1;    error_log  logs/error.log debug; #  记录调试日志   master_process  off;             #  单进程模式  daemon          off;            

2016-08-11 14:32:36 4567

转载 Makefile 使用总结

Makefile 使用总结1. Makefile 简介Makefile 是和 make 命令一起配合使用的.很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂.Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作

2016-08-04 11:18:55 571

转载 C++ typedef用法小结

第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针

2016-07-28 15:32:19 254

转载 指针函数与函数指针的区别

一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针     类型标识符    *函数名(参数表)      int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函

2016-07-19 17:20:51 247

转载 对于CDHtmlDialog和JavaScript、HTML配合使用的一些技术总结

转自:http://blog.csdn.net/pjl1119/article/details/7713892CDHtmlDialog可以方便的将网页嵌入对话框,使得在程序设计中人机界面(DHTML网页)与控制逻辑(CDialog)可以很好的分离。 1、屏蔽安全性提示,不再弹出控件是否安全的提示框。重载CanAccessExternal()函数,直接 return

2016-07-07 09:38:46 1638 2

转载 sendfile详解

在apache,nginx,lighttpd等web服务器当中,都有一项sendfile相关的配置,在一些网上的资料都有谈到sendfile会提升文件传输性能,那sendfile到底是什么呢?它的原理又是如何呢?在传统的文件传输里面(read/write方式),在实现上其实是比较复杂的,需要经过多次上下文的切换,我们看一下如下两行代码:read(file, tmp_buf, l

2016-06-21 09:37:58 2722 2

转载 git使用ssh密钥

git使用https协议,每次pull, push都要输入密码,相当的烦。使用git协议,然后使用ssh密钥。这样可以省去每次都输密码。大概需要三个步骤:一、本地生成密钥对;二、设置github上的公钥;三、修改git的remote url为git协议。一、生成密钥对。=============大多数 Git 服务器都会选择使用 SSH 公钥来进行授

2016-06-12 17:27:19 336

转载 C/C++除法实现方式及负数取模详解

一、下面的题目你能全做对吗?1.7/4=?2.7/(-4)=?3.7%4=?4.7%(-4)=?5.(-7)/4=?6.(-7)%4=?7.(-7)/(unsigned)4=?答案:1-133-1-31073741822如过你全部答对,你可以无视后面的内容……二、除法的取整分类除法的取整分为三类:向上取整、向下取整、向

2016-05-30 11:00:21 8130 3

转载 CentOS 7编译安装Nginx1.9.0

原文:https://typecodes.com/web/centos7compilenginx.html遇到的问题:在make的时候,遇到如下问题:make[2]: 进入目录“/home/eastlhu/soft/nginx-1.9.15/pcre-8.38”CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /home/e

2016-05-23 20:38:51 3591 1

转载 PHP7中php.ini、php-fpm和www.conf的配置

原文地址:https://typecodes.com/web/php7configure.html根据前文《CentOS 7.1编译安装PHP7》的configure编译参数设定,安装后的PHP7配置文件所在路径是/usr/local/php7/etc。该目录下会有两个配置文件:php-fpm.conf和php.ini,以及一个文件夹php-fpm.d(包含www.conf文件)。

2016-05-22 17:09:30 12955

转载 CentOS 7.1编译安装PHP7

原文地址:https://typecodes.com/web/centos7compilephp7.html1 创建php用户和用户组,并在github下载php7源码首先创建一个名为php且没有登录权限的用户和一个名为php的用户组,然后去GitHub下载php7源码包。#######新建php用户和php组[root@typecodes ~]# group

2016-05-22 17:07:40 2427

R语言实战(中文完整版)

R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具

2015-06-13

世界是数字的

世界是数字的高清正版pdf,开发人员必备,对程序员来说很有必要看!

2015-06-13

离散数学的真值表 mfc窗口

离散数学的真值表啊。很好用的。还有mfc窗口啊。很人性化。我第一次看了觉得很神奇啊

2011-11-10

空空如也

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

TA关注的人

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