自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 NSTimer解除循环引用

NSTimer作为一个常用的类,却有一个最大的弊病,就是会强引用target,造成调用timer非常麻烦,稍有不慎就造成内存泄漏。以下就是为解决这个问题做的封装。直接上代码:#import @interface LZLTimer : NSObject-(void)startTimerInterval:(NSTimeInterval)ti target

2015-06-09 16:38:07 916

原创 MVVM

传统的mvc设计模式,有个最大的弊病是v和c不能做到真正分离。v和c的分离需要一堆的block或者delegate,分离之后,很简单的逻辑还需要看几个跳转才知道。v和c的分离是mvc最好的地方。但是c很多时候太臃肿。设计,应该从实用出发。v和c可以混合在一起,v留出方便调用的api供c调用。 对m做一层封装,为view model。c持有v,c持有view model,view model持有

2015-06-09 15:20:02 780

原创 @property 和@synthesize

xcode4.4之后,@property包含了@synthesize的功能。这是编译器的升级。@property有几个作用:1)默认生成一个私有成员变量,并有一个带下划线的别名如_age   2)生成默认get和set方法声明 3)生成get和set方法实现由于默认是私有成员变量,要在子类中直接访问有如下几种方法:1)在superclass 的.h文件中定义成员变量,默认是prot

2015-06-09 11:14:46 590

原创 读《从0到1》有感

看完周鸿祎的《互联网方法论》,再看《从0到1》,感觉牛人确实有很多相似之处。     毕业后一直在深圳,毕业后的几年间也经历过几次不成功的创业,包括现在马上去一家新的创业公司,给我的一个很大的感受,就是深圳的竞争已经不仅限于国内,而是全球了,特别是人才,全球的顶尖人才,或者至少说全球的顶尖华人都已经把目光放到了中国。     另外一个比较大的感受是,人才是不受行业限制的。当金融发展很好的时

2015-04-25 14:14:29 605

原创 ios开发优秀博客

整体:多线程,block,动画:http://www.dreamingwish.com/article/gcdgrand-central-dispatch-jiao-cheng.html [强烈推荐]应用编程指南:http://blog.csdn.net/nicktang/article/details/6826266应用生命周期:http://blog.csdn.net/

2015-04-17 13:18:08 527

原创 函数中的栈内存

在main函数调用func_A的时候,首先在自己的栈帧中压入函数返回地址,然后为func_A创建新栈帧并压入系统栈在func_A调用func_B的时候,同样先在自己的栈帧中压入函数返回地址,然后为func_B创建新栈帧并压入系统栈在func_B返回时,func_B的栈帧被弹出系统栈,func_A栈帧中的返回地址被“露”在栈顶,此时处理器按照这个返回地址重新跳到func_A代码区中执行在

2015-03-11 16:39:53 514

原创 mrc项目转arc注意点

ARC:自动引用计数。编译器帮助插入retain和release,无需自己动手,更稳定。1. 结构里边不能有oc指针对象 。 arc只对可保留的指针对象(ROPs)有效: 1)代码块指针 2)Objective-C对象指针 3)通过 __attribute__((NSObject))类型定义的指针。 结构不属于可保留的指针对象,不能自动计数,oc指针可以。当结构体中有一个oc对

2015-03-08 22:25:14 470

原创 Frame,Bounds和Center的区别,联系

部分内容转载自:http://blog.csdn.net/mad1989/article/details/8711697

2015-02-13 13:38:56 623

原创 UIViewController内存警告管理

ios3.0ios5.0步骤应用收到内存警告。每个ViewController调用自己的didReceiveMemoryWarning方法.判断view是否当前显示在屏幕上,如果是当前页,则流程结束。ViewController调用viewWillUnload方法.ViewController设置它的View为空。(清view)

2015-01-20 11:59:18 659

原创 NSObject不常用方法汇总

• +(void)loadimport进时就调用。父类优于子类,类优于类别。• +(void)initialize类的第一个方法调用前调用。+(void)load不当成第一个方法。父类优于子类调用。http://www.cnblogs.com/ider/archive/2012/09/29/objective_c_load_vs_initialize.htm

2015-01-20 11:49:57 788

原创 View Programming Guide for IOS:View and Window Architecture笔记

View 和 Core Animation layers 连结起来渲染和动画view的内容。每个UIKit框架内的view的背后都是一个layer对象(一般是CALayer的实例),这个layer管理view背后的存储并且操作跟view有关的动画。大部分的操作都可以通过UIView的接口来执行,但是如果需要更多的操作来渲染或给视图做动画,也可以直接对layer做操作。在laye

2015-01-20 11:45:24 732

原创 View Programming Guide for IOS:Views笔记

1.执行画图代码:“当前绘图上下文”只在执行视图的drawRect方法期间才有效。UIKit有可能会在后续调用drawRect方法时声称一个新的视图上下文,所以你不能试图去缓存这个“当前绘图上下文”并在之后使用它。- (void)drawRect:(CGRect)rect {    CGContextRef context = UIGraph

2015-01-15 17:22:10 701

转载 Core Animation之CATransform3D学习篇

3D,顾名思义就是可以在z轴上动作,这里列举三个用例//用例1 scale  CABasicAnimation *theAnimation = [CABasicAnimation animationWithKeyPath:@"transform"];    CATransform3D transform = CATransform3DMakeScale(0.5, 0.5, 1.

2015-01-11 11:27:17 380

原创 UIBezierPath开发杂谈

以几个例子来说明UIBezierPath的使用。1.UIBezierPath *aPath = [UIBezierPath bezierPath];// Set the starting point of the shape.[aPath moveToPoint:CGPointMake(100.0, 0.0)];// Draw the lines.[aPath addLin

2015-01-07 16:07:21 486

原创 UITableView重用机制

[[[重用实现分析:  查看UITableView头文件,会找到NSMutableArray*  visiableCells,和NSMutableDictnery* reusableTableCells两个结构。visiableCells内保存当前显示的cells,reusableTableCells保存可重用的cells。  TableView显示之初,reusableT

2014-12-26 12:02:15 383

原创 ios keychain使用研究

[[[关于keychain这个东西的概念可以到这里学习:https://developer.apple.com/library/ios/#documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html,简言之就是每个应用程序都有一个可以用于安全保存一些如密码、认证等信息的keychain

2014-12-13 10:38:39 619

原创 ios唯一标识符解决方案——截止至2014.12

ios提供了很多可以唯一标识的方法。截至2014年12月份为止,比较好用的有两种。1.macAddress和IDFA并用:这种方式比较经常使用在客户端内嵌广告点击中,在ios7系统下,获取系统macAddress;在ios7及以上,获取IDFA。这种方法有几个问题:1)取ios7以下取macAddress不确定什么时候就会被苹果禁掉。2)IDFA,在系统从ios6升级到ios7时,会改变。

2014-12-12 18:44:35 792

原创 oc struct

oc中结构的对齐规则和vc不太一样。比如:typedef struct testStruct{    NSString *testStr1;}TEST_STRUCT;打印sizeof(TEST_STRUCT):结果是4typedef struct testStruct{    NSString *testStr1;    do

2014-12-09 14:55:52 1249

原创 NSObject类别-NSThreadPerformAdditions

- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait modes:(NSArray *)array

2014-12-09 14:52:44 615

原创 NSThread详解

1. NSThread 创建:1)- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argumentParameterstargetselector:消息发送的对象selector线程执行的方法,这个selector只能有一个参数,而且不能有返回值。argument:传输给targ

2014-12-09 14:51:37 565

原创 Cocoa初识

Cocoa可以理解成一个对象层,充当程序与操作系统之间的媒介与协调人的角色。把操作系统提供的功能以面向对象的方式提供给应用。Cocoa主要包括2个框架:Foundation框架和ApplicationKit框架。Foundation框架:根对象类,NSObject。表示基本数据类型的类,如字符串和字节数组。存储其他对象的集合类。表达系统信息和服务的类

2014-12-09 14:49:46 325

原创 UIBezierPath CGContextSaveGState: invalid context 0x0. This is a serious error.

用UIBezierPath画图,UIBezierPath * strokePath = [UIBezierPathbezierPath];strokePath = [UIBezierPathbezierPathWithRect:CGRectMake(0,0,self.frame.size.width*pathFloat,self.frame.size.height)];[s

2014-12-09 14:48:31 739

原创 2台iTouch无法收到注册远程推送回调,其他机器可以

在Xcode6编译器下,1台5.1系统的iTouch4和1台8.02系统的iTouch5注册远程推送后,没有收到苹果服务器的回调。其他iphone5,iphone6的机器都没问题。但是,同一个账号下的其他App IDs和Provisioning Profiles却全部机器可以收到苹果的推送回调。这个问题跟踪了几天,各种证书重做都不能解决。有一天又忽然都可以了。初步判

2014-12-09 14:46:48 395

原创 ios应用执行顺序,是根据编译器,还是根据操作系统?

苹果升级ios8和Xcode6.1以后,有些方法调用顺序改变了。比如A类有个变量_b,_b是B类的对象。旧的Xcode,要是在A类里调用[_b method];,如果_b还没初始化,会先初始化,Xcode6里,不初始化_b,直接调用method。addSubview一个viewController.view,旧的Xcode,会在addSubView时初始化viewControlle

2014-12-09 14:36:52 587

空空如也

空空如也

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

TA关注的人

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