自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhengzhongjie的专栏

好好学习

  • 博客(28)
  • 收藏
  • 关注

转载 ios响应者链条

首先,当发生事件响应时,必须知道由谁来响应事件。在IOS中,由响应者链来对事件进行响应,所有事件响应的类都是UIResponder的子类,响应者链是一个由不同对象组成的层次结构,其中的每个对象将依次获得响应事件消息的机会。当发生事件时,事件首先被发送给第一响应者,第一响应者往往是事件发生的视图,也就是用户触摸屏幕的地方。事件将沿着响应者链一直向下传递,直到被接受并做出处理。一般来说,第一响应者是个视

2015-11-01 07:00:01 509

原创 OC的KVC和KVO机制

KVC键值编码键值编码中基本使用-valueForKey:和-setValue:forKye:方法。你可以像对象发送消息并且传递你想要访问的熟悉名称的键值作为参数。 KVC方法会首先查找以参数命名的getter、setter方法,如果没有提供getter、setter方法,KVC方法会直接寻找_name和name的实例变量。// book.h@interface ZZBook : NSObjec

2015-11-01 06:17:51 505

原创 IOS应用的启动过程与生命周期

当创建完一个ios项目的时候可以看到一个main.m文件#import <UIKit/UIKit.h>#import "AppDelegate.h"int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass

2015-11-01 04:35:47 499

原创 OC 文件管理器NSFileManager

NSFileManager是一个单例结构可以用这个类,进行创建文件、删除文件、移动文件或者获取文件信息。 目录与文件创建int main(int argc, const char * argv[]) { @autoreleasepool { // 获取NSFileManager单例对象 NSFileManager *fm = [NSFileManage

2015-11-01 03:52:21 509

原创 OC中的NSNumber、NSValue

NSNumberOC中集合类中只能存储OC对象不能存储基本数据类型 如果要存储对基本数据类型进行包装 存储基本数据类型 1. 基本数据类型 -> 包装类型(NSNumber) -> 存入集合类 2. 从集合中取出包装类型 -> 包装类型(NSNumber) -> 基本数据类型NSNumber的使用int main(int argc, const char * argv[]) { @a

2015-11-01 03:12:00 409

原创 OC中NSDictionary、NSMutableDictionary、NSSet、NSMutableSet

NSDictionary字典是一个无序的集合,它使通过键值对的方式来存储数据的 key是有要求 NSCopying才能成为字典key,一般情况都是使用字符串作为字典的key NSDictionary 不可变得字典,一经创建里面的元素就不可以改变了NSDictionary的创建与读取int main(int argc, const char * argv[]) { @autore

2015-11-01 02:32:44 455

原创 OC中类别的向前引用和非正式协议

向前引用Cocoa没有任何真正的私有方法,如果你知道对象支持的某个方法,即使该对象所在的类的接口中没有声明该方法,你也可以调用它。 但是编译器发现你调用对象的某个方法,没有找到该方法的声明会报错。 如果在类别中声明了该方法,编译器就知道该方法已经存在了,不管有没有在类别中去实现。//.h@interface ZZPerson : NSObject- (void) pubFun;@end//.

2015-10-31 21:02:06 943

原创 OC中的类别、类扩展与协议

类别(category)功能: 1. 类别可以给原有的类添加新功能 2. 可以在方法内部访问原有类的成员变量和方法//ZZPerson.h@interface ZZPerson : NSObject{@private int _age;}@property (nonatomic,copy) NSString * name;-(void) eat;@end//ZZPerso

2015-10-31 20:17:18 1378

原创 Objective-C中得MRC与ARC

MRC内存管理任何继承自NSObject的对象都需要内存管理,非对象类型不需要(int、char、float、double、struct、enum等 ) OC通过引用计数来判断是否需要回收一个对象所占用的内存,每一个OC对象都有自己的引用计数器,是一个4个字节的整数,表示多少人正在使用这个对象。如果引用计数器为0时,对象的内存就会被回收,如果不为0就不会被回收。当使用alloc、new、copy创

2015-10-31 02:30:48 772

原创 NSLog和description

NSLogNSLog与C语言的printf非常相似,都是格式化输出消息。 格式化表 项目 价格 %@ 对象 %d, %i 整数 %u 无符整形 %f 浮点/双字 %x, %X 二进制整数 %o 八进制整数 %zu size_t %p 指针 %e 浮点/双字 (科学计算) %g 浮点/双字 %s C 字符串

2015-10-31 01:22:28 572

原创 OC语法

类的创建声明:就是对的概括说明,它是给使用该的人看的 1. 确定类名 2. 要继承NSObject,是为了让类有创建对象的能力 3. 声明必须以@interface 开头 以@end结尾 4. 声明属性,必须在@interface 与@end之间的大括号中 声明属性的时候不可以对属性进行初始化 5. 声明方法,必须在{} 与 @en

2015-10-31 00:29:27 271

原创 Centos mosquitto1.4.2 编译安装

tar zxvf mosquitto-1.4.2.tar.gzyum install openssl-develyum install c-ares-develyum install libuuid-develmake sudo make install

2015-06-02 15:12:48 499

转载 linux下可执行程序如何定位共享库文件以及如何让系统找到用户指定的库

1. 可执行程序在执行的时候如何定位共享库文件?当系统加载可执行代码的时候,能够知道其所依赖的库的名字,但是还需要知道库的绝对路径,此时就需要系统动态载入器(dynamic linker/loader)。对于elf格式的可执行程序,是由ld-linux.so*来完成的,它先后搜索elf文件的DT_RPATH段---环境变量LD_LIBRARY_PATH---/etc/ld.

2015-05-27 16:40:57 777

原创 Ubuntu 上安装mosquitto

安装时需要库 sudo apt-get install libssl-dev sudo apt-get install libc-ares-dev sudo apt-get install libc-ares2 sudo apt-get install uuid-dev make make install

2015-05-26 18:33:31 800

原创 在linux的Apache上运行python脚本

在linux上查找httpd.conf文件 find / -name httpd.conf -print 在“Options Indexes FollowSymLinks ”这句的在后面加上”ExecCGI “。 在”AddHandler cgi-script .cgi “,去掉前面的#,再在后面加上 .py。 重启apache /etc/init.d/httpd restart在 /v

2015-05-16 22:22:22 621

原创 python中的工厂函数

工厂函数:一个能够记住嵌套作用域的变量值的函数,尽管那个作用域已经不存在了。>>> def maker(N): def action(X): return X**N return action这定义了一个外部函数,这个函数简单地生成并且返回了一个嵌套的函数,却并不调用这个内嵌函数。如果调用外部函数就得到一个生成的内嵌函数的一个引用。这个内嵌函数是通过运行内嵌def而创

2015-04-30 22:28:41 7065

原创 Python 批量分析windows程序崩溃捕获的dump文件

dump文件可以用CDB和编译生成的pdb文件获取出崩溃堆栈,定位崩溃代码段。 在pdbPath.txt中读取pdb文件的路径。 用python运行cdb 带参数命令,逐个解析dump 文件,将解析结果保存到对于名字的文本文件内,再从这些文件中摘取堆栈信息输出到文本。# -*- coding: gbk -*-import osimport os.pathimport sysimport

2015-04-30 21:45:04 3088 1

原创 golang 搭建简单web服务器

搭建最简单的web服务器,在浏览器输入 localhost:9002/baby 会打印出 Hi, I love you babypackage mainimport ( "fmt" "net/http" "strings" "html" "io/ioutil" //"encoding/json")type Server struct { ServerName st

2015-04-30 21:12:49 836

原创 C++ post方式请求网页

C++post方式向页面发送数据,用于记录程序中的一些操作。

2015-04-30 20:12:46 1761

原创 Boost.Asio 异步执行方法,post()\dispach()\wrap().

Asio中的异步操作不仅包括 异步的客户端服务端的连接和异步的数据读写,还包括很多可以异步执行的操作。 Asio中有三种方式异步执行你指定的方法:post()、dispach()、wrap()。post()这个方法能立即返回,并且请求一个io_service实例调用制定的函数操作(function handler),之后会在某一个盗用io_service.run()的线程中执行。dispach

2015-03-23 22:30:31 12443 1

原创 深入Boost.asio的异步Tcp通信的server、client,可用来当程序骨架。

程序功能:客户端用名字登录服务端连接由客户端驱动,客户端请求,服务端应答所有的请求和应答都以\n结尾当客户端在5秒内没有发ping请求,服务端就关闭连接客户端可以请求所有已经建立连接的用户列表客户端可以发ping请求,服务端应答 ping ok或者ping client_list_chaned,客户端收到 ping client_list_chaned后会重新请求用户列表让程序变得有意

2015-03-20 00:11:40 5904

原创 Boost.asio实现的同步、异步TCP通信的简单例子

每个asio程序都必须有io_server对象。对于服务端和客户端都需要socket对象,通过socket对象的成员函数进行连接和数据通信。服务端需要 acceptor对象来等待连接。下面的例子是用C++11和boost1.57编写的。同步TCP通信服务端#include <boost/asio.hpp>#include <iostream>using namespace boost::asio

2015-03-19 23:13:49 8823 5

原创 boost.asio定时器dealine_timer,实现可以随时控制启动停止和设置时间。

dealine_timer类的成员函数![这里写图片描述](http://img.blog.csdn.net/20150317163110237)定时器dealine_timer有两种形式的构造函数,都要求有一个io_service对象,用于提交IO请求,第二个参数是定时器的终止时间,可以是posix_time的绝对时间点或者是自当前时间开始的一个时间长度。一旦定时器对象创建,它就立即开始计时

2015-03-17 16:41:44 5279

原创 用c++11的bind,function,boost::condition_variable实现的一个线程安全的任务队列

用bind将需要执行的任务包装成function<void()> 放入队列std::queue<function<void()>> 中。 然后在队列中取出调用执行。当线程间的共享数据发生变化的时候,可以通过condition_variable来通知其他的线程。消费者wait 直到生产者通知其状态发生改变,Condition_variable是使用方法如下:·当持有锁之后,线程调用wait·wait

2015-03-17 14:31:36 716

原创 C++11中bind的用法

bind可以将函数绑定成另一个可调用的函数对象,可以改变原来函数的传参方式。所以可以把bind看成一个函数的适配器。#include <functional>#include <iostream>#include <string>using namespace std;int sum(int a, int b, int c){ return a + b + c;}class A

2015-03-13 00:16:47 483

转载 DUILIB gif按钮

转自 DuiLib开发之显示Gif最近正在用duilib进行开发,需要显示动态的gif.由于新版的stb_image.c中,还没有支持动态gif的加载,本人决定在stb_image.c中增加一个加载动态gif的函数TGifInfo*gif_load_from_memory(). 下面说说关键的地方吧.可以把动态gif简单的理解为:gif文件是由多张普通的bmp图片组成,显示第1张BMP,延时一段时

2015-03-12 20:22:47 1592

原创 c++11中lambda

在C++中可以对从在括号运算符。下面是一个重载括号运算符的类。class Abs{public: int operator()(int val) const { return val < 0 ? -val : val; }};这是一个求绝对值的运算符重载。int i = -1;Abs obj;int ui = obj(i);std::cout <

2015-03-11 23:33:39 262

原创 C++11 中一个很有趣的东西,Lambda表达式,称可调用对象,也叫函数对象。

最近在工作中接触到一些C++11的东西,感觉挺有趣的。都没有写博客的习惯,打算以后学点东西记一记。ok,先来讲讲有趣的函数对象Lamdba。在C++primer 第5版里,是这样引出lambda的。 有一个已经按长度排序好的vector《string》 如: fox red the over slow jumps quick turtle 问题是,在这个vector中寻找

2015-03-11 22:47:55 596

空空如也

空空如也

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

TA关注的人

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