自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Char_IEngeneer的专栏

芝兰生于空谷,不以无人而不芳!

  • 博客(26)
  • 资源 (21)
  • 收藏
  • 关注

原创 AssociatedObject关联对象原理实现

关联对象(AssociatedObject)是Objective-C 2.0运行时的一个特性,允许开发者对已经存在的类在扩展中添加自定义的属性。在实际生产过程中,比较常用的方式是给分类(Category)添加成员变量。示例:#import <objc/runtime.h>@interface NSObject (AssociatedObject)@property (...

2019-02-28 18:04:47 241

原创 iOS 底层解析weak的实现原理

         weak表是一个hash(哈希)表,Key是所指对象的地址,Value是weak指针的地址数组。weak是弱引用,所引用对象的计数器不会加一,并在引用对象被释放的时候自动被设置为nil。通常用于解决循环引用问题。weak的原理是什么呢?下面就分析一下weak的工作原理(只是自己对这个问题好奇,学习过程中的笔记,希望对读者也有所帮助)。 weak 实现原理的概括   ...

2019-02-27 17:16:48 242

原创 算法系列(一)最大子数列问题

最大子数列问题       在计算机科学中,最大子数列问题的目标是在数列的一维方向找到一个连续的子数列,使该子数列的和最大。例如,对一个数列 −2, 1, −3, 4, −1, 2, 1, −5, 4,其连续子数列中和最大的是 4, −1, 2, 1, 其和为6。       该问题最初由布朗大学的Ulf Grenander教授于1977年提出,当初他为了展示数字图像中一个简单的最大然似然

2016-10-21 15:36:39 902

原创 iOS 逆向工具篇(一) class-dump

iOS 正向开发也有一段时间,开发时间越久对 iOS 内部的东西就越好奇,但是又不能通过官方文档资料查到,但是她确确实实存在,这无疑就勾起了我的好奇心。这种情景用《无极》中张柏芝的一句话描述很贴切:你们想看看我这件衣服下面穿的是什么吗?答案是很明显的。那就开始 iOS 逆向之旅吧。由于大学的嵌入式知识还没有还给老师,有些新东西还是很容易接受的。记录下在这条路上的每一步吧。放下浮躁的内心

2016-10-13 15:31:48 1188

原创 Xcode 7.1项目中Objective-C和swift混合编程(一)

最近项目中使用到了一个图表插件,由于这个图表插件使用swift写的,所以需要在项目中使用到swift语言。苹果推出swift语言也有一段时间,由于swift1.0中bug太多,一直没在项目中使用。写这篇文章的时间swift已经更新到2.0。所以就决定在项目中使用swift,之后整个项目慢慢向swift过度。写了这篇文章,当做学习笔记吧,为有这样打算的开发人员提供一个思路。废话不多说,下面开

2015-10-30 20:48:51 2020

原创 Reveal UI调试利器,逆向app的实践教程:Reveal别人的 app(一)

这篇教程是Reveal别的app的教程。想要实现这个目的,我们要具备以下的结果条件:(1)一台已经越狱的iphone(2)OS X系统,同时还需有Reveal.app用于在OS X上运行。1、如何越狱一部iPhone手机 越狱在网上已经有很多教程,针对不同版本的ios系统,有不同的工具。由于大部分人已经升级iOS9,下面的链接就是针对不同的iOS系统进行越狱的教程。

2015-10-16 14:19:06 1491 3

原创 Xcode7 使用cocoapods管理第三方依赖库Nimbus,编译报错,解决办法(二)

新建项目,使用cocoapods管理第三方依赖库。在Podfile中写好,执行pod install,一切都是很顺利的。紧接着build项目时出现错误,错误如图所示:遇到这样的问题也不必惊慌,主要原因是该类库使用objc_msgSend和IMP发生冲突,只要在将下图的位置设置为NO即可:

2015-10-10 14:06:14 598

原创 Xcode 7 打包上传app,兼容iOS9,遇到的坑(一) 问题:UIApplication.m:3294

楼主是在十一前提交最新版本的app到AppStore。假期归来满心欢喜以为上架了,于是打开iTunes Connect,打开一看,被拒绝了。尼玛,这是第二次被拒绝了。    楼主不敢轻易提交代码了,就认真的把代码review一遍,也没发现什么问题。打开崩溃日志发现如下错误报告:*** Assertion failure in -[UIApplication _runWithMainScen

2015-10-08 12:31:35 1216

原创 使用xCode6.4集成xmpp的那些坑!!!

http://blog.sina.com.cn/s/blog_5fb39f910101akyo.htmlhttp://www.tuicool.com/articles/nqyy2u7

2015-09-21 21:42:12 646

转载 数据结构——排序算法总结

排序(Sorting)就是将一组对象按照规定的次序重新排列的过程,排序往往是为检索而服务的,它是数据处理中一种很重要也很常用的运算。例如我们日常学习中的查字典或者书籍的目录,这些都事先为我们排好序,因此大大降低了我们的检索时间,提高工作效率。  排序可分为两大类:  内部排序(Internal Sorting):待排序的记录全部存放在计算机内存中进行的排序过程;  外部排序(Exter

2014-10-15 17:52:39 552

转载 GitHub托管代码

本篇博客针对不会Git的小童鞋,大神们可以绕过,错误之处谢谢指正;关于GitHub的强大此处不在说明,知道GitHub也有一段时间了,但是一直苦于不会使用。本篇文章介绍的是如何将工程代码托管到上面;如果你还没注册GitHub账号请到https://github.com/上注册如果你已经注册GitHub账号,在你的电脑上安装了GitHub,而一直还没上传过代码

2014-10-15 13:38:28 393

转载 iOS开发:加载、滑动翻阅大量图片解决方案

常规思路流程点击任意小图后:1.首先制作scrollview框架:大小2个scrollview,小的用于手势缩放单一图片,大的横向依次加载全部照片2.制作好scrollview框架后,加载照片3.一切准备就绪跳转页面呈现给用户选择的大图加载图片这一步,若相册内就10几张照片,那么毫无技术挑战,但是如果是300张照片呢?直接崩溃?还是让用户等待加载? 时间紧任

2014-10-15 13:02:33 630

转载 IOS 开发中判断字符串是否为空字符的方法

- (BOOL) isBlankString:(NSString *)string {    if (string == nil || string == NULL) {        return YES;    }    if ([string isKindOfClass:[NSNull class]]) {        return YES;    }    i

2014-10-15 13:00:25 666

转载 iOS 17个常用代码整理

12.判断邮箱格式是否正确的代码:  //利用正则表达式验证  -(BOOL)isValidateEmail:(NSString *)email  {      NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";      NSPredicate *emailTest = [NS

2014-10-15 12:53:04 385

转载 CentOS 6.4 编译安装 gcc 4.8.1

CentOS 6.4 编译安装 gcc 4.8.1今天在isocpp上看到“GCC 4.8.1 released, C++11 feature complete”这个消息,非常兴奋。终于有一个全面支持C++11语言特性的编译器了!当然了,gcc仅仅是语言特性上全面支持C++11,libstdc++貌似还没有完全跟上,不过我已经挺满足了,至少可以去尝试各种特性了。另外,之前也有消息说Cl

2013-12-03 16:34:40 597

原创 静态数据成员和静态成员函数理解

1、静态数据成员静态数据成员其特殊点在于它以关键字static开头。静态数据成员我们也可以叫它共享数据,原因在于一旦我们在一个类中定义了一个或多个静态数据成员,即使我们不创建对象也可以引用这些数据成员。如果只声明了类而没有定义对象,类中的一般数据成员是不占内存空间的。需要注意的是:静态数据成员不属于某一个对象,不会占用某一个对象的内存空间。所有的对象,都可以引用这些静态数据成员。静态数据成

2013-12-02 21:54:56 666

原创 【转】SecureCRT常用设置

SecureCRT是最常用的终端仿真程序,简单的说就是windows下登录UNIX或Liunx服务器主机的软件。传统的网络服务程序,如:ftp和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而通过使用SSH客户端与服务器端通讯时,用户名及口令均进行了加密,有效防止了对口令的窃听。同时通过SSH的数据传输是经过压缩的,所以可

2013-12-02 15:34:17 571

原创 C++中对象的常引用实例分析

我们知道一个变量的引用就是变量的别名。实质上变量名和引用名都是指向同一段内存单元。如果形参为变量的引用名,实参为变量名,那么在调用函数时,并不是为形参开辟了一个存储空间(常称为建立一个实参的拷贝),而是把实参变量的地址传给形参(引用名),这样引用名也指向了实参变量。实例:#includeusing namespace std;class Person{     public:

2013-12-02 15:34:14 617

原创 指向对象的常指针和指向常对象的指…

1、指向对象的常指针    把指向对象的指针变量声明为const型并将之初始化,这样指针始终保持为初值,不能改变,也就是说它的指向始终不会改变。    定义指向对象常指针格式:  类名 * const 指针变量名 = &对象名(对象地址);    例如:Person p("zhangsan",20),p2;  //定义对象   Person * const p3 =&p;  

2013-12-02 15:34:12 1078

原创 C++中的常对象、常数据成员和常成…

1、常对象在定义对象是=时,我们可以将对象定义为常对象。常对象中的数据成员为常变量且必须要有初值。例如:Person constp('M')。一旦声明可常对象那么常对象中的所有数据成员的值都不能被修改。所以希望保证数据成员的不被改变的对象,我们都可将其声明为常对象。定义常对象的格式:类名 const 对象名(实参列表){} 或const 类名 对象名(实参列表){}需要注意的是:一个对

2013-12-02 15:34:10 1201

原创 C++中的析构函数和构造函数

析构函数(destructor)是一个特殊的成员函数。析构函数的定义:~类名(){}执行时期:当对象的生命周期结束时就会自动执行析构函数。具体情况如下:1、如果在一个函数中定义了一个对象(局部对象),当这个函数被调用,且执行结束时,对象应该释放,也就是在释放对象前调用析构函数。2、static局部对象在函数调用结束时并不释放对象,因此这是并不执行析构函数,在main函数执行结束或调用

2013-12-02 15:34:08 520

原创 C++中函数重载和函数模板的理解

函数重载   函数重载的判断标识是它的函数参数列表,不是返回值来判断的。类似这样的:int demo(int i,doubled);   doubledemo(int i,double d);       在编译时就会报错。因为这里不牵涉到函数重载。函数模板   例如:template         T Max(T&num1,T &num2) {return

2013-12-02 15:34:06 416

原创 C++流格式控制符的使用

1.流格式控制符定义在头文件中,setw(n)                                      指定打印字段的宽度setprecision(n)                         设置一个浮点数的精度fixed                                         将一个浮点数以

2013-12-02 15:34:04 922

原创 Linux下编译C++

Linux下 编译C++在编译之前我们需要在系统里安装G++GCC,它们就是Linux下的C++/C的编译器。代码如下代码:sudo apt-get installbuild-essentialsudo apt-get install gccsudo apt-get install g++好,现在我们在文本编辑器里写一个C的简单的程序(好像所有学习C或者C++的书都会出现)

2013-12-02 15:34:01 401

原创 Linux下关闭防火墙

一.Linux下开启/关闭防火墙命令1) 永久性生效,重启后不会复原开启: chkconfig iptables on关闭: chkconfig iptables off2) 即时生效,重启后复原开启: service iptables start关闭: service iptables stop需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭

2013-12-02 15:33:59 363

原创 Linux下命令(删除,解压)

1、linux删除用户方式linux下删除用户通常有两种方式,一种是使用命令行,另一种是手动删除。命令行操作命令格式:userdel username#删除zhangshanuserdel zhangsan#删除zhangsan用户,并删除其相应的宿主目录userdel -r zhangshan手工删除1. 删除用户在 /etc/passwd、/etc/shadow文件下的行

2013-12-02 15:33:52 1284

AngularJS_2 权威教程

AngularJS 2.0 中英文权威教程,包含中文翻译。权威教程。

2017-11-02

PaintCode.for.Sketch 1.1

sketch 插件,将在 sketch 上的设计图直接导出成 swift 或者是 oc 代码。方便移动开发。破解版本,按照帮助文档破即可使用。

2017-04-19

iOS应用逆向工程(第2版)

iOS应用逆向工程(第2版),完整版电子书。

2016-10-09

C++ BMP与JPG格式的图片互相转换源代码

C++ BMP与JPG格式的图片互相转换源代码,跨平台,不依赖任何库

2016-08-26

markMan 专业的标注工具专业破解版 Mac版

Mac版MarkMan – 马克鳗 专业破解版 打开时不要升级就能享用破解功能。

2016-05-26

swift和OC混合编程实例源代码

Xcode 7.1项目中Objective-C和swift混合编程,文章的源代码。

2015-10-30

Reveal 1.5.1 破解版

Reveal,是分析app的利器,iOS工程师的开发利器。

2015-10-16

Adium_1.5.10.dmg

这是配合ejaberd使用的聊天工具,这样使用ios程序中集成xmpp就能和这款软件实现简单的聊天。

2015-09-22

ejabberd-15.07-osx-installer.app.zip

使用xmpp做一些简单的xmpp的demo,使用的聊天服务器,在mac上使用。

2015-09-22

shiro+springmvc入门级的小Demo--免积分

shiro整合springmvc的一个简单的用户权限管理,简单配置直接运行,注释详实。

2015-09-18

Objective-C中高级进阶知识官方文档-Runtime机制

这是介绍iOS开发中的高级进阶Runtime指南,想要更多Runtime的,这本书是首选。

2015-09-18

SSO CAS 单点登录实例SSOAuth+SSOWebDemo1+SSOWebDemo 免积分下载

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 较大的企业内部,一般都有很多的业务支持系统为其提供相应的管理和IT服务。例如财务系统为财务人员提供财务的管理、计算和报表服务;人事系统为人事部门 提供全公司人员的维护服务;各种业务系统为公司内部不同的业务提供不同的服务等等。这些系统的目的都是让计算机来进行复杂繁琐的计算工作,来替代人力的手 工劳动,提高工作效率和质量。这些不同的系统往往是在不同的时期建设起来的,运行在不同的平台上;也许是由不同厂商开发,使用了各种不同的技术和标准。如 果举例说国内一著名的IT公司(名字隐去),内部共有60多个业务系统,这些系统包括两个不同版本的SAP的ERP系统,12个不同类型和版本的数据库系 统,8个不同类型和版本的操作系统,以及使用了3种不同的防火墙技术,还有数十种互相不能兼容的协议和标准,你相信吗?不要怀疑,这种情况其实非常普遍。 每一个应用系统在运行了数年以后,都会成为不可替换的企业IT架构的一部分. 我用J2EE的技术(JSP和Servlet)完成了一个具有Web-SSO的简单样例。样例包含一个身份认证的服务器和两个简单的 Web应用,使得这两个 Web应用通过统一的身份认证服务来完成Web-SSO的功能。此样例所有的源代码和二进制代码都可以从网站地址http://gceclub.sun.com.cn/wangyu/下载。 样例部 署和运行的环境有一定的要求,需要符合Servlet2.3以上标准的J2EE容器才能运行(例如Tomcat5,Sun Application Server 8, Jboss 4等)。另外,身份认证服务需要JDK1.5的运行环境。之所以要用JDK1.5是因为笔者使用了一个线程安全的高性能的Java集合类 “ConcurrentMap”,只有在JDK1.5中才有。 这三个Web应用完全可以单独部署,它们可以分别部署在 不同的机器,不同的操作系统和不同的J2EE的产品上,它们完全是标准的和平台无关的应用。但是有一个限制,那两台部署应用(demo1、demo2)的 机器的域名需要相同,这在后面的章节中会解释到cookie和domain的关系以及如何制作跨域的WEB-SSO 解压缩SSOAuth.zip文件,在/WEB-INF/下的web.xml中请修改“domainname”的属性以反映实际的应用部署情况, domainname需要设置为两个单点登录的应用(demo1和demo2)所属的域名。这个domainname和当前SSOAuth服务部署的机器 的域名没有关系。我缺省设置的是“.sun.com”。如果你部署demo1和demo2的机器没有域名,请输入IP地址或主机名(如 localhost),但是如果使用IP地址或主机名也就意味着demo1和demo2需要部署到一台机器上了。设置完后,根据你所选择的J2EE容器, 可能需要将SSOAuth这个目录压缩打包成war文件。用“jar -cvf SSOAuth.war SSOAuth/”就可以完成这个功能。 解压缩SSOWebDemo1和SSOWebDemo2文件,分别在它们/WEB-INF/下找到web.xml文件,请修改其中的几个初始化参数 <init-param> <param-name>SSOServiceURL</param-name> <param-value>http://wangyu.prc.sun.com:8080/SSOAuth/SSOAuth</param-value> </init-param> <init-param> <param-name>SSOLoginPage</param-name> <param-value>http://wangyu.prc.sun.com:8080/SSOAuth/login.jsp</param-value> </init-param> 将其中的SSOServiceURL和SSOLoginPage修改成部署SSOAuth应用的机器名、端口号以及根路径(缺省是 SSOAuth)以反映实际的部署情况。设置完后,根据你所选择的J2EE容器,可能需要将SSOWebDemo1和SSOWebDemo2这两个目录压 缩打包成两个war文件。用“jar -cvf SSOWebDemo1.war SSOWebDemo1/”就可以完成这个功能。 请输入第一个web应用的测试URL(test.jsp),例如http://wangyu.prc.sun.com:8080/SSOWebDemo1/test.jsp,如果是第一次访问,便会自动跳转到登录界面,如下图。 使用系统自带的三个帐号之一登录(例如,用户名:wangyu,密码:wangyu),便能成功的看到test.jsp的内容:显示当前用户名和欢迎信息。 请接着在同一个浏览器中输入第二个web应用的测试URL(test.jsp),例如http://wangyu.prc.sun.com:8080/SSOWebDemo2/test.jsp。你会发现,不需要再次登录就能看到test.jsp的内容,同样是显示当前用户名和欢迎信息,而且欢迎信息中明确的显示当前的应用名称(demo2)。 3.2 WEB-SSO代码讲解 3.2.1身份认证服务代码解析 Web-SSO的源代码可以从网站地址http://gceclub.sun.com.cn/wangyu/web-sso/websso_src.zip下 载。身份认证服务是一个标准的web应用,包括一个名为SSOAuth的Servlet,一个login.jsp文件和一个failed.html。身份 认证的所有服务几乎都由SSOAuth的Servlet来实现了;login.jsp用来显示登录的页面(如果发现用户还没有登录过); failed.html是用来显示登录失败的信息(如果用户的用户名和密码与信息数据库中的不一样)。

2015-09-18

CAS服务端和客户端源代码

cas-server-3.1.1-release.zip和cas-client-java-2.1.1.zip源代码及其相关内容,代码内有注释,方便理解,简单配置直接运行

2015-09-18

Xcode插件包集合工具

熟话说,工欲善其事,必先利其器。现在iOS开发的大都使用各种插件,在这个插件包中均能找到,是iOS开发的利器。

2015-09-15

Xcode-shell自动化打包脚本

Xcode-shell自动化打包脚本,这是一个自动化打包的脚本,使用方法在压缩包中。

2015-09-15

shiro+springmvc整合demo

SpringMVC+Apache Shiro+JPA(hibernate)整合demo

2015-09-15

shiro所有版本jar

shiro所有的jar包 还有跟cas集成的jar包 以及shiro官网的jar下载地址

2015-09-15

swift语言官方学习教程(中文版)

在2014年WWDC大会上,Apple发布了全新的iOS开发的语言:swift。这个文档是Apple公司发布的swift语言的文档。

2014-10-14

OC 中的内存管理

这个资料详细讲解了 OC 中的内存是如何管理的。

2014-05-30

C++ Primer Plus 第6版 中文版.pdf

此为C++ Primer Plus第6版中文版,介绍了C++11的新特性。

2013-12-03

vi常用的命令壁纸

该壁纸上有vi常用的命令,壁纸整体呈灰白色。实用vi命令在其上,可以方便查询命令。

2013-12-02

空空如也

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

TA关注的人

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