自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

国球的专栏

不要因为走得太远而忘记为什么出发!

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

原创 关键帧动画

实现类似密码密码会左右弹的动画

2014-10-16 23:15:48 501

原创 OCUNIT框架断言宏

框架说明STAssertEqualObjects当两个对象不相等,或者是其中一个对象为nil时候断言失败;STAssertEquals当参数1不等于参数2时候断言失败,用于C中基本数据测试;STAssertNil当参数不是nil时候断言失败;STAssertNotNil当参数是nil时候

2014-06-11 10:04:01 618

转载 run loop

学习过程中,将Threading PG中的Run Loops翻译了下,权当是做为笔记。原文见 Run Loops。20110526转载请注明,谢谢。http://www.cnblogs.com/scorpiozj/Runloops是线程的基础架构部分。一个runloop就是一个事件处理循环,用来不停的调配工作以及处理输入事件。使用run loop的目的是使你的线程在有工作的时候

2014-05-21 11:08:34 544

转载 获取本机IP地址

//获取本机IP- (NSString *)getIPAdress{ NSString *address = @"error"; struct ifaddrs *interfaces = NULL; struct ifaddrs *temp_addr = NULL; int success = 0; success = getifaddrs(&inter

2014-05-19 17:57:34 587

原创 隐藏IOS软件

用文本编辑打开.plist文件 然后加下gh

2014-04-24 14:13:29 537

转载 关于IOS7.1企业版发布后,用户通过sarafi浏览器安装无效的解决方案:

方案一:http://blog.csdn.net/zhaoxy_thu/article/details/21133399方案二:最简单,实用。使用dropBox如何安装,自己度之。当你使用XCODE发布安装包IPA和PLIST文件后,将IPA仍然保存在你常用保存的网站上,只要可以正常连接下载即可。PLIST文件是供手机版SAFARI解析的文件,里面包

2014-04-03 11:56:45 537

原创 日期格式区别

期名缩写(例如: 日,代表星期日)  %A    当前locale 的星期名全称 (如:星期日)  %b    当前locale 的月名缩写 (如:一,代表一月)  %B    当前locale 的月名全称 (如:一月)  %c    当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25)  %C    世纪;比如 %Y,通常为省略当前年份的后两位

2014-03-28 15:57:40 817

转载 UILocalizedIndexedCollation 的浅分析

UILocalizedIndexedCollation 是相当于是tableView的一个辅助类,用来对tableView的数据源进行管理,排序,定位。 UILoaclizedIndexedCollation 提供了对tableView的section titles 和sectionindex titles的配置。带有section index的tableView,主要是应用于很多个分类的数据

2014-03-26 10:01:44 1752

转载 NSExpression

每当涉及查询或者整理信息时,Cocoa总是其他标准库羡慕的对象。通过使用NSPredicate,NSSortDescriptor,以及偶尔使用NSFetchRequest,即使是最复杂的数据任务也可以被简化成为几行极其容易读懂的代码。 现在,NSHipster们无疑已经熟悉NSPredicate 了,不过如果我们更进一步看看NSPredicate,我们会发现NSPredicate其实是由更

2014-03-10 15:27:58 542

转载 xmpp协议之type状态码表示属性

简单扼要,主要简单介绍到xmpp中的presence  表示XMPP状态的packet。每一个presence都有一个状态。用枚举类型Presence.Type的值表示:available --(默认)用户空闲状态unavailable--用户没空看消息subscribe--请求加别人为好友subscribed--确认别人对自己的好友请求unsubscribe--请求删除好

2014-02-18 17:34:38 1545 1

原创 ELFhashValue

- (int)ELFhashValue:(NSString *)key {    if (!key)        return -1;        unsigned long h = 0;    unsigned long g;    unsigned long word;        for (int i = 0; i         word = [k

2014-01-20 10:22:45 470

原创 由UIColor 生成 UIImage

+ (UIImage *)createImageWithColor:(UIColor *)color{    CGRect rect=CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);    UIGraphicsBeginImageContext(rect.size);    CGContextRef context = UIGraphicsGetCurrent

2014-01-16 13:59:09 659

原创 HMJSONKit

由于第三方的JSONKit 有内容泄漏,故自己重新写JSON解析,用系统自带的NSJSONSerialization写(适用IOS5以上)更加高效和方便 ,形式参考JSONKit,这样就不用去改动工程的代码。直接上代码//// HMJSONKit.h// CaiYun//// Created by lgqyhm on 14-1-3.////#import @inter

2014-01-13 09:52:04 878 1

转载 id 和 instancetype

instancetype关键字,几个UICollectionViewLayout的类方法,返回类型由id修改为instancetype,这两者有什么区别呢,上网搜了一下,找到篇文章意思大概是,依照cocoa的命名规则,alloc,init这类方法,如果以id为返回类型,会返回类本身的类型,但类方法的返回类型,LLVM(clang)编译器无法判断,也就是说如果用id作为返回类型,有可能会将一

2013-11-20 13:59:03 734

转载 如何为iOS app添加AirDrop文件分享功能

AirDrop概览AirDrop是iOS 7引入的一项新功能,iCloud同步功能允许在用户的两台iOS设备之间分享照片和文档,而AirDrop可以在不同用户的iOS设备之间进行照片和文档的分享。 在iOS 7之前,iOS用户主要依靠第三方app实现iOS设备间的文件和数据分享,在iOS 7中,该项新功能适用于所有iPhone 5、iPad 4、iPad mini以及第五代iPod t

2013-11-06 09:59:02 3610

转载 Method Swizzling

在没有一个类的实现源码的情况下,想改变其中一个方法的实现,除了继承它重写、和借助类别重名方法暴力抢先之外,还有更加灵活的方法吗?在Objective-C编程中,如何实现hook呢?标题有点大,计划分几篇来总结。本文主要介绍针对selector的hook,主角被标题剧透了———— Method Swizzling 。Method Swizzling 原理在Obje

2013-11-05 10:59:26 593

原创 class_addMethod 最后一个参数

class_addMethod 最后一个参数是 type encodings ,用来标识IMP函数实现的返回值与参数,具体的type encodings 可以参考apple官方提供的 type encodings 对应表:CodeMeaningcA chariAn int

2013-11-04 17:48:13 2372

原创 如何用perform selector调用超过两个以上参数的方法

Cocoa内置只支持两个参数,要超过两个参数以上怎么办呢,下面代码展示了如何实现一个自己的方法来调用超过7个参数(来自three20)- (id)performSelector:(SEL)selector withObject:(id)p1 withObject:(id)p2 withObject:(id)p3    withObject:(id)p4 withObject:(id)p

2013-11-04 16:49:49 790

原创 消息转发

消息转发是解决object-c不能用多继承的一种方法,也是动态方法的一种。先说下他的原理:后面再上代码解释。消息转发其实就是当实例(类)不能处理一个消息时,在抛出异常前,系统给你一个方法你处理这个情况。 Foo * foo = [[Foo alloc] init];                [foo Bar];                [foo MissMe

2013-11-04 16:25:06 542

原创 Mach 常见异常类型

EXC_BAD_ACCESS :内存访问无效EXC_BAD_INSTRUCTION:线程试图访问非法/无效的指令或将无效的参数(操作数)传递给指令EXC_ARITMETHIC:除以0或整数溢出/下溢引发的异常EXC_SYSCALL 和 EXC_MACH_SYSCALL:应用程序访问内核服务(如文件I/O)或网络访问时发出其他Mach异常定义在mach/exception_types

2013-10-29 17:35:59 1006

转载 Text Kit学习(入门和进阶)

更详细的内容可以参考官方文档 《Text Programming Guide for iOS》。 “Text Kit指的是UIKit框架中用于提供高质量排版服务的一些类和协议,它让程序能够存储,排版和显示文本信息,并支持排版所需要的所有特性,包括字距调整、连写、换行和对齐等。” 以前,如果我们想实现复杂的文本排版,例如在textView中显示不同样式的文本,或者图片和文字混排,你可

2013-10-29 16:06:33 759 7

原创 NSMutableAttributedString IOS中的富文本

为了让文字显示更有效果,例如在一段文字里我想有不同的颜色,大小,下划线等等效果,就要用到富文本,富文本在IOS6时才加入更多的功能。NSMutableAttributedString *attrString = [[NSMutableAttributedStringalloc] initWithString:title];[attrString beginEditing]; NSM

2013-10-29 15:51:37 770

转载 虚拟内存

计算机系统中的RAM资源有限,由系统上所有运行的进程竞争共享。当系统运行多个应用程序时,所有进程分配的内存总量会超过系统上RAM的数量,这很正常。操作系统也支持虚拟内存,这样进程就可以分配和使用比系统上的安装的RAM数量还要多的内存。也就是说,进程的地址空间不受物理RAM数量的限制。有了虚拟内存,操作系统便可以使用次级存储器(如硬盘)上的后备存储空间,保存无法放到RAM中的进程的地址的空间。然

2013-10-27 19:44:45 501

原创 NSDate中的格式

日期格式如下:y  年  Year  1996; 96  M  年中的月份  Month  July; Jul; 07  w  年中的周数  Number  27  W  月份中的周数  Number  2  D  年中的天数  Number  189  d  月份中的天数  Number  10  F  月份中的星期  Number  2  E  星期中的天数  

2013-10-23 15:46:36 470

转载 runtime 中OC理解

最近打算写一些ObjC中比较底层的东西,尤其是 runtime 相关的。苹果已经将 ObjC runtime 代码开源了,我们可以从:http://opensource.apple.com/source/objc4/objc4-493.9/runtime/ 浏览源代码,或点此下载源代码。从哪里入手呢?那当然是最基本的类与对象。与C++相比,ObjC中的类与对象结构要简洁与一致得多(参考《深

2013-10-22 18:05:30 2042

原创 用OC的动态性去处理dealloc

//运用OC的动态属性,释放属性的内存- (void)dealloc{        Class clazz = [self class];    u_int count;    objc_property_t *properties = class_copyPropertyList(clazz, &count);    for (int i =0; i      

2013-10-22 11:38:54 579

转载 When does layoutSubviews get called?

It’s important to optimize any UIView layoutSubviews method you create, as it can be frequently called, and has the potential for creating recursion (triggering a setNeedsLayout from layoutSubviews ca

2013-10-16 11:17:47 442

原创 CocoaPods 的安装与使用

CocoaPods 简介CocoaPods  是第三方库相互管理的一个工具,对于现在工程里越来越多的第三方库,管理起来不方便,而且有些第三方库加入的时候还要设置环境变量,这些机械化的操作感觉有点浪费时间。CocoaPods就由此而生。CocoaPods的安装1.打开MAC的终端,输入命令:sudo gem update --system更新ruby版本。2.更新成功后再

2013-10-11 17:29:23 486

空空如也

空空如也

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

TA关注的人

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