随笔分类 -  ObjC

ObjC之RunTime(下)
摘要:之前通过学习官方文档对runtime有了初步的认识,接下来就要研究学习runtime到底能用在哪些地方,能如何改进我们的程序。本文也可以从icocoa浏览。SwizzlingSwizzling可以分为method swizzling和class(isa)swizzling两种。顾名思义就是将方法/类在运行时替换掉。Method Swizzling在运行时替换/修改某个方法——可以是自己写的方法也可以是系统的方法——当然一般是用于替换框架类中的方法。//ZJView.m -Swizzling+ (void)swizzleSetFrame{ SEL originalSel = @select... 阅读全文
posted @ 2013-11-03 16:49 scorpiozj 阅读(1061) 评论(0) 推荐(0)
ObjC之RunTime(上)
摘要:转载自这里。最近看了一本书——iOS6 programming Pushing the Limits(亚马逊有中文版),最后一章是关于Deep ObjC的,主要内容是ObjC的runtime。虽然之前看过runtime的programming guide,但读之乏味也不知道能用在何处。现在有点小小的理解,觉得别有乾坤,索性把runtime的相关东西给整理一下。 下面就从官方文档开始,看看runtime有哪些特性,以及各自的应用场合。基本概念对于现在绝大多数的64位操作系统而言,我们接触到的都是ObjC2.0的modern runtime。ObjC程序从3个层次来使用到runtime:1.Obj 阅读全文
posted @ 2013-10-22 23:06 scorpiozj 阅读(1542) 评论(5) 推荐(0)
ARC下IBOutlet用weak还是strong
摘要:原文来自这里。今天用Xcode5的时候,发现默认的IBoutlet的属性设置为weak——因为Xcode5建立的工程都是ARC的了。但是当时还有点不明白,因为项目的原因,一直没有正式使用过ARC。于是,为了搞清楚为什么,google了一下,有很多答案。试着从Apple文档寻找线索,在这里找到了说明:From a practical perspective, in iOS and OS X outlets should be defined asdeclared properties. Outlets should generally beweak, except for those from 阅读全文
posted @ 2013-09-24 21:49 scorpiozj 阅读(3084) 评论(0) 推荐(0)
多线程-NSOperation中使用ASIHttpRequest注意事项
摘要:最近做的iPhone项目中有一如下功能:app在用户许可后将本地Photos的照片上传到服务器,期间用户可以做其他任何操作,等上传成功后弹出一个toast通知用户。原先的代码结构是:获取照片的操作放在NSOperation的子类A中获取完照片后,逐个生成一个上传类B(此上传类是ASIFormDataRequest的子类),并把它添加到NSOperationQueue中。其中operationqueue设置了最大运行数是1,但是实际测试下来发现所有的上传都是并发的,一查代码,发现上传类B居然没有实现main,就一个init函数。初始化完之后直接startAsynchronous了,然后返回sel 阅读全文
posted @ 2013-06-21 22:10 scorpiozj 阅读(941) 评论(1) 推荐(1)
block 2 兼答疑
摘要:之前简单的纪录过关于block的一些知识点,最近有人在回帖问了个问题。顺便温习了下,感觉内容放在现在有点单薄。于是结合提问,把相关的东西整理一下。问题简单的说:block内局部变量无法修改,但为什么可以添加数组?比如:NSMutableArray *mArray = [NSMutableArray arrayWithObjects:@"a",@"b",@"abc",nil];NSMutableArray *mArrayCount = [NSMutableArray arrayWithCapacity:1];[mArray enumer 阅读全文
posted @ 2013-04-08 13:50 scorpiozj 阅读(1070) 评论(3) 推荐(0)