- 博客(30)
- 资源 (10)
- 收藏
- 关注
原创 Runtime Message Forwarding
原文出自:标哥的技术博客前言本篇文章是研究消息转发的机制,苹果的消息转发机制就像一条链,消息传送链越长则消耗也越大,最好是在第一级就可以直接发送消息。我们必须要先了解objc_msgSend函数调用的检测过程:第一步:检测这个selector是不是要忽略的。第二步:检测这个target是不是nil对象。nil对象执行任何一个方法不会Crash是因为会被忽略掉。第三步:查找这个类的IMP,也就
2015-12-31 15:06:28 583
原创 runtime自动归档/解档
原文出自:标哥的技术博客前言善用runtime,可以解决自动归档解档。想想以前归档是手动写的,确实太麻烦了。现在有了runtime,我们可以做到自动化了。本篇文章旨在学习如何通过runtime实现自动归档和解档,因此不会对所有类型适用,而是对我们指定的几种类型适用。定义模型我们这里只是写一个例子,用于学习如何用runtime实现自动归档以及解档,因此,我们需要定义一个模型类,然后在里面实现自动归档
2015-12-30 23:30:14 1619
原创 runtime模型与字典互转
原文出自:标哥的技术博客前言在开发中必不可少的模型与字典互转,但是一直以来都是使用他人的库,从来没有研究其原理或者说深究其所以然。现在,在这里我们一起来学习通过runtime完成模型与字典的互转。声明Model在开始介绍详细API之前,我们先来声明一个模型类HYBTestModel,这个类提供了根据字典转换成模型类对象的功能,还提供了将模型类转换成字典的功能://// HYBTestModel
2015-12-29 19:20:51 3137
原创 Masonry自动计算行高
原文出自:标哥的技术博客前言还在手动计算UITableViewCell的行高吗?还在每次都因为需求变化一点就要大量调整cell的高度而烦恼吗?现在教大家如何通过Masonry的自动布局来实现自动计算cell的行高!!!在github没有找到基于Masonry自动计算行高的库,倒是找到了使用xib/storyboard在添加约束来自动计算行高的库,如: UITableView-FDTemplateL
2015-12-28 00:13:22 4509
原创 runtime关联属性
原文出自:标哥的技术博客前言在开发中经常需要给已有的类扩展添加方法和属性,但是Objective-C是不允许给已有类扩展属性的,因为类扩展是不会自动生成成员变量的。但是,苹果提供了runtime,我们可以通过runtime使用关联API就可以做到了。关联API介绍我们先看看关联API,只有这三个API,使用也是非常简单的:/** * Sets an associated value for a
2015-12-27 22:40:56 1065 2
原创 runtime基础知识
原文出自:标哥的技术博客前言学习Objective-C的运行时Runtime系统是很有必要的。个人觉得,得之可得天下,失之则失天下。Objective-C提供了编译运行时,只要有可能,它都可以动态地运作。这意味着不仅需要编译器,还需要运行时系统执行编译的代码。运行时系统充当Objective-C语言的操作系统,有了它才能运作。运行时系统所提供功能是非常强大的,在实际开发中是经常使用到的。比如,苹果
2015-12-27 22:37:41 712
原创 NIL、NIL、NULL和NSNULL区别
前言记得曾经有不少朋友问过笔者,在Objective-C中nil和Nil以及NULL的区别。最重要的是,在面试中还有不少朋友常会被问到。记得当年刚找工作的时候,笔者就被面试官问到过,现在笔者在这里统一详细说明。NULL对于学习过C/C++语言的朋友,对NULL一定很熟悉吧?这就是在C/C++中的空指针。在C语言中,NULL是无类型的,只是一个宏,它代表空。我们不研究C++中的NULL,因为在C++1
2015-12-25 12:05:07 1383
原创 Core Animation基础
前言本次分享将从以下方面进行展开:曾被面试官问倒过的问题:层与视图的关系CALayer类介绍及层与视图的关系CAShapeLayer类介绍UIBezierPath贝塞尔曲线讲解CoreAnimation之动画子类介绍CATransitionAnimation类实现各种过滤动画关于Core Animation在iOS系统中的关系图如下:可以看出,Core Animation是相对上层的封
2015-12-22 18:34:29 690
原创 iOS 7 present/dismiss自定义转场动画
前言iOS 7以后提供了自定义转场动画的功能,我们可以通过遵守协议完成自定义转场动画。本篇文章讲解如何实现自定义present、dismiss自定义动画。 关于自定义push/pop转场动画,请阅读iOS 7 push/pop自定义转场动画效果图本篇文章实现的动画切换效果图如下:视图切换种类如下效果图,这是有两大类视图切换动画的,一种是交互式的,另一种就是自定义的。本篇只讲其中的UIViewC
2015-12-21 16:21:42 5379
原创 ios7 push/pop转场动画
前言iOS 7之后,苹果提供了自定义转场动画的API,我们可以自己去定义任意动画效果。本篇为笔者学习push、pop自定义转场效果的笔记,如何有任何不正确或者有指导意见的,请在评论中留下您的宝贵意见!!! 请注意:如果要求支持iOS 7以下版本,则不可使用此效果。我们本篇文章目标效果:视图切换种类如下效果图,这是有两大类视图切换动画的,一种是交互式的,另一种就是自定义的。本篇只讲其中的UIVi
2015-12-19 14:04:18 4512
原创 dYSM分析崩溃日志
前言相信很多朋友都使用了友盟统计这个SDK吧,能够统计出我们崩溃的日志,但是反馈的日志是无法确定到底是哪里发生崩溃的,那么我们如何去查呢?dYSM是打包的时候生成的,位于/Users/<用户名>/Library/Developer/Xcode/Archives下,找到它就可以拿友盟统计上的错误日志来查找崩溃在程序的哪个类哪行代码了。不过,这不是绝对的,有的日志是查不到崩溃在何处的。查找dYSM文件在
2015-12-17 18:04:35 4273
原创 CATransition动画精讲
前言曾经,笔者对动画一无所知,当他人问起时,总是似懂非懂。每一次别人说起动画效果时,笔者都不好意思插话,因此懂得太少,只是会使用UIView的那几个添加动画的方法。现在,不再等待,一步一步地学习其基础知识并开始尝试写一些常用的动画效果。如果您也一样迷茫,那就不要迷茫了,实践出真知!!!基础知识我们直接看官方声明:/** Transition animation subclass. **/@inter
2015-12-16 22:42:07 1387
原创 漫谈iOS RSA非对称加密与解密
前言最近公司的客户端安全性出现了严重的问题,如今这个出解决方案并自我测试验证可行性的重任落在了我的身上,学习了很多他人的文章,再经过多次讨论,最后才确定最终解决方案。笔者在这里讲讲这一经历中所需要了解的知识。iOS客户端想要加密传输数据以防被窃取,最可靠的方式莫过于使用公钥加密算法加密,使用HTTPS协议在整个传输过程中都使用了这个技术,对于未能使用HTTPS的HTTP接口,我们能否实现RSA加密呢
2015-12-16 17:11:20 4260 2
原创 Xcode插件神器
Xcode插件神器作为iOS开发人员,不了解些常用的插件,不使用插件,开发效率怎么会够快呢?那么问题来了,现在的你,使用过哪些xcode插件?如果没有使用过插件,那么很遗憾,您错过了很多好用的工具!插件管理器既然使用xcode插件,就应该想想有没有插件管理器呢?是的,有一个灰常有名的插件管理器叫Alcatraz,关于这个插件管理器如何安装,请参考官方文档如果您已经安装过这个插件管理器,那么恭喜您可
2015-12-14 13:11:33 2967 1
原创 Swift注释风格
前言良好的注释,有助于开发和维护,请正视注释!在Swift2.0之前与之后是不一样的,这里是基于Swift2.0的。看看ObjectiveC中常用的注释看看下面是笔者对UIActionSheet封装的一个通用方法的注释:/*** @author huangyibiao** Block版本的actionSheet,具体如何使用请参考UIActionSheet** @param inView
2015-12-12 11:36:04 1852
原创 CABasicAnimation精讲
CABasicAnimation精讲本教程写了这个效果图的demo,同时总结CABasicAnimation的使用方法。看完gif动画完,看到了什么?平移、旋转、缩放、闪烁、路径动画。实现平移动画实现平移动画,我们可以通过transform.translation或者水平transform.translation.x或者垂直平移transform.translation.y添加动画。// 平移动画
2015-12-09 15:10:39 750
原创 CAAnimation解读
CAAnimation解读CAAnimation是一个抽象类,遵循了CAMediaTiming协议和CAAction协议!我们不要直接使用CAAnimation类,而是使用其子类:CATransition:提供渐变效果,如推拉push效果,消退fade效果,揭开reveal效果CAAnimationGroup:允许多个动画同时播放CABasicAnimation: 提供了对单一动画的实现C
2015-12-08 19:13:31 1563
原创 ios属性修饰符总结
ios属性修饰符总结很多刚接触iOS的朋友对属性的@property的可选参数如何使用,什么情况下使用哪种选项不了解,也问了我很多这方面的知识,虽然知道怎么用,但是有些说不出其区别。在这里,再次深入学习一遍,对copy/strong/weak/__weak/__strong/assign的使用场景总结总结。如果有说得不对的地方,请指出。如果有疑问,请私聊我,或者直接回复我。自动引用计数原文档关于自
2015-12-08 15:03:29 7217
原创 CALayer精讲
CALayer精讲CALayer包含在QuartzCore框架中,这是一个跨平台的框架,既可以用在iOS中又可以用在Mac OS X中。后面要学Core Animation就应该先学好Layer(层)。我们看一下UIView与Layer之间的关系图(图片来源于网络):我们知道,UIView有一个属性layer,这个是在视图创建时就会自动创建一个图层。想要呈现出来,就需要到Layer。层是可以放很多
2015-12-08 13:16:17 640
原创 iOS CAShapeLayer精讲
iOS CAShapeLayer精讲CAShapeLayer继承自CALayer,因此,可使用CALayer的所有属性。但是,CAShapeLayer需要和贝塞尔曲线配合使用才有意义。关于UIBezierPath,请阅读文章iOS UIBezierPth精讲基本知识看看官方说明:/* The shape layer draws a cubic Bezier spline in its coordi
2015-12-07 18:00:35 1988 1
原创 新浪微博分享不显示分享的链接问题
新浪微博分享不显示分享的链接问题新浪微博分享成功后,明明传了URL,分享成功后,到微博查看分享的内容,没有链接,无法查看。 说来也奇怪,新浪微博并没有传过去的url作为redirecturl,不显示分享的链接。 原文链接:http://www.henishuo.com/sina-weibo-share-url-not-show/解决方案所以,笔者这里把分享的文字和URL拼在一起,结果就可以
2015-12-07 17:54:47 7421
原创 iOS Socket编程-C语言版(TCP)
iOS Socket编程-C语言版(TCP)本篇文章为总结使用C语言的api来完成TCP通信的基本功能,如果您对Socket不了解,请先阅读上一篇理论知识:iOS Socket理论知识如果您还想学习UDP编程,请阅读iOS Socket编程-C语言版(UDP)如果文章中有任何您认为不正确的或者有疑问的,请联系笔者!谢谢! 支持原创,请阅读原文1. TCP Socket编程TCP是面向连接的,
2015-12-06 18:46:06 3565
原创 iOS Socket编程-C语言版(UDP)
iOS Socket编程-C语言版(UDP)本篇文章为总结使用C语言的api来完成UDP通信的基本功能,如果您对Socket不了解,请先阅读上一篇理论知识:iOS Socket理论知识如果文章中有任何您认为不正确的或者有疑问的,请联系笔者!谢谢! 支持原创,请阅读原文1. UDP Socket编程先讲一讲UDP编程,因为比TCP要简单多了。首先,我们需要明白UDP是用户数据报协议,英文名为U
2015-12-06 18:45:22 2608
原创 iOS Socket理论知识
iOS Socket理论知识网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 其中物理层、数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象; 传输层、会话层、表示层和应用层则被称作主机层,是用户所面向和关心的内容。http协议对应于应用层 tcp/udp协议对应于传输层 ip协议对应于网络层 三者本质上没有可比性。何况HTTP协议是基于T
2015-12-06 18:44:23 1831
转载 HTTPS接口加密和身份认证(转)
HTTPS接口加密和身份认证对HTTPS研究有一段时间了,在这里写下一些收集的资料和自己的理解。有不对的地方希望斧正。1.为什么要使用HTTPS代替HTTP1.1HTTPS和HTTP的区别https协议需要到CA申请证书,一般免费证书很少,需要交费。http是超文本传输协议,信息是明文传输,https则是具有安全性的SSL加密传输协议。http和https使用的是完全不同的连接方式,用的端口
2015-12-04 14:51:49 14809 2
原创 iOS App之间如何通信
iOS App之间如何通信假设需求是这样的:由一个app1跳转到app2之后,app2完成某项任务之后,怎么把app2的完成信息传到app1(自己的程序是app1),传的是什么类型的数据,怎么进行解析? 支持原创,请阅读原文逻辑本文章使用TestApp1作为第一个app的URL Schemes,TestApp2为第二个app的URL Schemes。TestApp1工程配置如下图,要适配iO
2015-12-03 22:50:58 1201 2
原创 iOS 6.0 Masonry自动布局表头/表尾时崩溃解决方案
iOS 6.0 Masonry自动布局表头/表尾时崩溃解决方案使用Masonry要兼容iOS6.0,正常情况下都是可以的。但是对于UITableView的tableHeaderView或者tableFooterView不能直接添加约束,否则在iOS6.0上必闪退。提示:若您的App不需要支持到iOS6.0,那么您没必要继续阅读这篇文章 支持原创,请阅读原文解决方案- (void)config
2015-12-03 21:36:43 3501
原创 UIBezierPath精讲
学习UIBezierPath画图笔者在写本篇文章之前,也没有系统学习过贝塞尔曲线,只是曾经某一次的需求需要使用到,才临时百度看了一看而且使用最基本的功能。现在总算有时间停下来好好研究研究这个神奇而伟大的贝塞尔先生!笔者在学习时,首先看了两遍UIBezierPath类头文件定义,熟悉了一下相关的属性和方法。 支持原创,请阅读原文基础知识使用UIBezierPath可以创建基于矢量的路径,此类是
2015-12-03 21:02:48 761
原创 iOS NSLayoutAttributeLeft与NSLayoutAttributeLeading的区别
iOS NSLayoutAttributeLeft与NSLayoutAttributeLeading的区别在使用Masonry时,有mas_left与mas_leading,同样有mas_right与mas_trailing,在中国都习惯左、右布局,使用left/right与heading/trailing是一样的。但是,在其它部分国家,开发者们的习惯不都是左、右或者前、后布局,还有右、左或者后、
2015-12-03 10:44:46 4314
原创 iOS图片压缩处理
iOS图片压缩处理首先,我们必须明确图片的压缩其实是两个概念:“压” 是指文件体积变小,但是像素数不变,长宽尺寸不变,那么质量可能下降。“缩” 是指文件的尺寸变小,也就是像素数减少,而长宽尺寸变小,文件体积同样会减小。 支持原创,请阅读原文图片“压”处理对于“压”的功能,我们可以使用UIImageJPEGRepresentation或UIImagePNGRepresentation方法实现
2015-12-01 18:21:09 7806 1
QT4写的扫雷小游戏
2013-08-13
QT4写的贪吃蛇小游戏
2013-08-13
最简单在VS2010上使用VC用手
2013-05-13
C#WinForm学生管理系统后台ADO.NET访问SQL2005
2012-11-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人