- 博客(15)
- 资源 (6)
- 收藏
- 关注
转载 C++和Objective-C混编(官方文档翻译)
苹果的Objective-C编译器允许用户在同一个源文件里自由地混合使用C++和Objective-C,混编后的语言叫Objective-C++。有了它,你就可以在Objective-C应用程序中使用已有的C++类库。 在Objective-C++中,可以用C++代码调用方法也可以从Objective-C调用方法。在这两种语言里对象都是指针,可以在任何地方使用。例如,C++类可以使
2013-04-25 22:17:04 470
转载 self = [super init]
Objective-C的推荐init方法写法如下: - (id) init { if(self = [super init]) { //为子类增加属性进行初始化 } return self; } 返回值为id类型,id类型可以赋值给其他类型指针,其他类型指针也可以赋值给id类型 obc中子类指针不能直接赋值给父类指针 [super ini
2013-04-25 21:04:41 661
转载 self与super的区别
在objc中的类实现中经常看到这两个关键字”self”和”super”,以以前oop语言的经验,拿c++为例,self相当于this,super相当于调用父类的方法,这么看起来是很容易理解的。但是它们真正是如何调用的呢? 你知道吗? 以下面的代码为例: @interface Person:NSObject { NSString* name;
2013-04-25 21:03:52 1887
原创 CALayer和UIView的关系
http://www.360doc.com/content/12/0413/15/8455184_203301635.shtml
2013-04-25 20:22:05 485
转载 iOS多线程 nsthread
iPhone 中的线程应用并不是无节制的,官方给出的资料显示iPhone OS下的主线程的堆栈大小是1M,第二个线程开始都是512KB。并且该值不能通过编译器开关或线程API函数来更改。 只有主线程有直接修改UI的能力。 一、 NSOperation和NSOperationQueue 1、一个继承自 NSOperation的操作类,该类的实现中必须有 - (void)main方法的
2013-04-22 11:46:36 650
转载 init、loadView、viewDidLoad、viewDidUnload、dealloc的关系
由init、loadView、viewDidLoad、viewDidUnload、dealloc的关系说起 init方法 在init方法中实例化必要的对象(遵从LazyLoad思想) init方法中初始化ViewController本身 loadView方法 当view需要被展示而它却是nil时,viewController会调用该方法。不要直接调用该方法。 如果手工维护views,必
2013-04-22 11:30:39 449
原创 #include,#import,@class的区别 .....
#include #include #include "xx.h":用于对用户自定义的文件的引用,编译器首先会去用户目录下查找,然后去安装目录,最后去系统目录查找。 注:使用include要注意重复引用的问题: class A,class B都引用了class C,class D若引用class A与clas
2013-04-22 11:08:07 620
转载 Objective C内存管理进阶(一):实践准则
这个系列打算写一些我对Iphone开发内存管理的理解。是建立在读者对Objective C的内存管理已经有一定理解的基础上,内容将包括实践准则,autorelease原理剖析,内存泄露的调试等。如果您对Objective C内存管理不太了解,建议先读一下Vince Yuan的这个教程。 在进行IPhone开发时, 内存管理是个相对比较难以理解的东西。Objective-C使用了一种介于C#和C+
2013-04-21 22:48:29 640
转载 Objective C内存管理进阶(二):理解autorelease
如果你能够真正的理解autorelease, 那么你才是理解了Objective c的内存管理。Autorelease实际上只是把对release的调用延迟了,对于每一个Autorelease, 系统只是把该Object放入了当前的Autorelease pool中, 当该pool被释放时,该pool中的所有Object会被调用Release。 [1]在Iphone项目中,大家会看到
2013-04-21 22:43:36 451
转载 ios 如何使用gcd,block
http://blog.sina.com.cn/s/blog_45e2b66c01010dhd.html 1。GCD之dispatch queue http://www.cnblogs.com/scorpiozj/archive/2011/07/25/2116459.html 2。iOS中GCD的魔力 http://blog.csdn.net/favormm/article/detai
2013-04-16 22:13:49 628
转载 Cocoa框架
Cocoa框架 是什么因素使一个程序成为Cocoa程序呢?肯定不是编程语言,因为在Cocoa开发中您可以使用各种语言;也不是开发工具,因为您在命令行上就可以创建Cocoa程序(虽然那会使开发过程变得复杂,且需要消耗大量时间)。那么,所有Cocoa程序的共同点是什么?是什么使它们变得与众不同?答案是这些程序都是由一些对象组成,而这些对象最终都是从NSObject这个根类继承下来的;还有,这些程序都
2013-04-16 22:09:47 745
转载 Block使用
Block可以帮助我们组织独立的代码段,并提高复用性和可读性。iOS4在UIKit中引入了该特征。超过100个的Apple API都使用了Block,所以这是一个我们必须开始熟悉的知识。 Block是什么样的? 你可以使用^操作符来声明一个Block变量,它表示一个Block的开始。 int num1 = 7; int(^aBlock)(int) = ^)int num2) {re
2013-04-16 21:30:50 450
转载 iOS/Objective-C开发 字典NSDictionary的深复制(使用category)
目标:把NSDictionary对象转换成NSMutableDictionary对象,对象内容是字符串数组,需要实现完全复制(深复制)。 如果调用NSDictionary的mutableCopy方法,可以得到一个NSMutableDictionary对象,但这只是浅复制,如果我们修改NSDictionary中数组内的值(当然,数组必须是NSMutableArray),会发现,NSMutableD
2013-04-16 20:59:13 5495
原创 IOS学习笔记之属性方法的选择
ios 中的property 就是自动生产get/set方法的时候使用的。 @property定义一个已经存在的属性 @synthesize实现具体的访问方法 retain:setter方法对参数进行release旧值再retain新值,所有实现都是这个顺序 assign:setter方法直接赋值,不进行任何retain操作,适合数值,不直接拥有的delegate对象 copy:sett
2013-04-16 20:57:35 3717
转载 C++内存管理
C++内存管理 [导语] 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃
2013-04-09 18:40:22 589
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人