- 博客(15)
- 收藏
- 关注
原创 NSOprationQueue 与 GCD 的区别与选用
GCD 技术是一个轻量的,底层实现隐藏的神奇技术,我们能够通过GCD和block轻松实现多线程编程,有时候,GCD相比其他系统提供的多线程方法更加有效,当然,有时候GCD不是最佳选择,另一个多线程编程的技术NSOprationQueue 让我们能够将后台线程以队列方式依序执行,并提供更多操作的入口,这和 GCD 的实现有些类似。这种类似不是一个巧合,在早期,MacOX 与 iOS 的程
2014-02-10 19:43:26 732
原创 Objc中Block的原理、实现及注意事项
Block在Objc中,GCC编译器的更新引入了Block语法,这为objc语言提供了良好的闭包的功能,并为 Mac OS 与 iOS 的多个系统API所使用。 它的基本语法如下//语法形式return_type (^block_name)(parameters)//实现int addtional = 5;int (^addBlock)(int a,int b) = ^(int
2014-01-27 17:26:22 857
原创 Object - C 的消息处理机制与 Method Swizzling(函数混淆)
objc_msgSend在Object-C中,我们经常调用一个对象的方法,通常我们将这个过程成为 消息传递。不同于 C 语言对对象方法的静态调用,Object-C 是通过 Dynamic Binding (动态绑定) 机制来实现消息传递的,对象对于详细的响应和处理都是在 runtime 运行时才能决定。通常,一个消息传递是这个样子的id result = [object messa
2014-01-10 20:36:58 810
原创 Effective Objc : Object-C 中 @property 详解
在一个类中,为了类的工作运转,拥有了多个成员变量,我们能够像Java或者C一样的声明他们:@interface WGCell : UITableViewCell{ NSString *_cellName;}@end在这种声明方法下,之前的编译器会将多个成员变量线性地排列在内存空间中,因此,如果添加或删除了某个变量声明,整个项目需要进行重编译才能保证项目的兼容性。Objc
2013-12-30 18:02:21 875
转载 XCode多个语法糖
Object Literals这个是我认为最赞的一个改进。Object Literals允许你方便地定义数字、数组和字典对象。这个功能类似于java5提供的auto boxing功能。这虽然是一个语法糖,但我认为对提高写代码效率帮助很大。让我们先来看看以前定义数字、数组和字典对象的方法:1 NSNumber * number = [NSNumber numberWithInt:1
2013-12-24 16:51:27 1195
原创 Effective Objective - C 2.0 笔记
1、Object-C 是 C 的超集,它使用运行时来进行动态绑定,所有对象的类型都是在运行时才能确定的,都是以消息传递的机制运作;所有对象都是在heap 中 allocated 的,在stack中allocate 对象是不合法的;内存管理在objc中被抽象为以引用计数的方式来进行管理。2、最小化在头文件中import的头文件数量,在尽可能的深处引用它 ; 使用提前声明,消除多余的引用,
2013-12-24 16:27:29 936
原创 IOS6后的didReceiveMemoryWarning方法笔记
IOS6以来,ViewUnload 的方法被废弃掉了,原因是苹果对系统的内存回收做了进一步的优化处理。之前一直天真地以为直接把ViewUnload的代码移到didReceiveMemoryWarning就行了,通过对 再见,viewDidUnload方法 的学习,我们可以知道,系统已经对 View 的内存回收做了处理;当一段内存被分配时,它会被标记成“In use“, 以防止被重复使用。当
2013-12-11 15:18:04 705
原创 [UIImage resizableImageWithCapInsets:] 函数说明
关于这个函数,在apple的文档说明中是这样子的Declare - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsetsDescription Creates and returns a new image object with the specified cap insets.You use this
2013-12-09 17:04:50 1301
原创 三句话解决IOS7下透明导航栏情况TableView向上偏移问题
if (IOS7_OR_LATER) { self.edgesForExtendedLayout = UIRectEdgeNone; self.extendedLayoutIncludesOpaq
2013-12-04 17:10:05 3622
原创 Core Animation 基础
1、可以使用 CATransaction类来重载默认的时间[CATransaction begin];[CATransaction setValue:[NSNumber numberWithFloat:5.0]forKey:kCATransactionAnimationDuration];[layer setPosition:endPoint];[CATrans
2013-11-25 11:47:04 685
转载 UIViewController的误用
转载本文请保留以下原作者信息:原作:OneV http://www.onevcat.com/2012/02/uiviewcontroller/什么是UIViewController的误用UIViewController是iOS开发中最常见也最重要的部件之一,可以说绝大多数的app都用到了UIViewController来管理页面的view。它是MVC的核心结构和
2013-11-20 19:17:46 769
原创 在IOS7下自定义导航栏和状态栏
一、 改变NavigationBar 的颜色在IOS7下,UINavigationBar 的 TintColor 已不再用于修改导航栏颜色了,取而代之的是以下代码[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];可以通过设置NavigationBar 的 translucent 为 YES ,使 Navi
2013-11-18 18:09:43 4769
转载 Cocoa 和 Objective-C 特性
成员变量应该是 @privateTip成员变量应该声明为 @private@interface MyClass : NSObject { @private id myInstanceVariable_;}// public accessors, setter takes ownership- (id)myInstanceVariable;- (void)setMy
2013-11-18 11:54:43 981
原创 UIScrollView 中处理subView点击事件
若在UIScollView里面add了若干个SubView,那它将如何处理手势事件呢?根据文档,UIScollView在用户触摸屏幕后,会设置一个Timer,在一定时间内,若触摸的点没有移动,则将触摸事件传至subView处理,若触摸的点移动后,则会成为ScrollView的滚动事件。如果在ScollView中加入按钮,且需要实现入tableView时点击后拖曳,取消按钮高亮,响应
2013-11-18 11:13:24 2478
转载 ARC 中注意事项
1、strong 会hold住对象,一个对象如果没有strong的成员hold就会销毁2、weak为弱引用,若指向的内存被销毁,则设为nil3、switch 要加{}4、delegate 一般为weak5、IBOutlet 一般设为weak ,不用再ViewDidUnload 设为nil6、unsafe_unretained 这就是原来的assign。当需要支持iOS4时需要用
2013-11-15 11:36:26 487
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人