您的位置:首页 > 移动开发 > IOS开发

ios开发中类方法以及self的注意点

2012-05-15 14:11 337 查看
Objective-C里面既有实例方法也类方法。类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenience method)。工厂方法的称谓明显和一般意义上的工厂方法不同,从本质上来说,类方法可以独立于对象而执行,所以在其他的语言里面类方法有的时候被称为静态方法。

注意点一:类方法

1,类方法可以调用类方法。

2,类方法不可以调用实例方法,但是类方法可以通过创建对象来访问实例方法。

3,类方法不可以使用实例变量。类方法可以使用self,因为self不是实例变量。

4,类方法作为消息,可以被发送到类或者对象里面去(实际上,就是可以通过类或者对象调用类方法的意思)。

注意点二:self的规则

大家需要记住下面的规则:

1,实例方法里面的self,是对象的首地址。

2,类方法里面的self,是Class.

尽管在同一个类里面的使用self,但是self却有着不同的解读。在类方法里面的self,可以翻译成class self;在实例方法里面的self,应该被翻译成为object self。在类方法里面的self和实例方法里面的self有着本质上的不同,尽管他们的名字都叫self。

类方法创造的对象要不要用release释放?

答 不需要 这个对象被放到自动释放池中

Object-C中的私有方法和私有成员变量

成员变量默认对内是共有的,对外是私有的。

@interface Controller : NSObject

{

@private: NSString *something;

}

+ (void)thisIsAStaticMethod;

- (void)thisIsAnInstanceMethod;

@end

@interface Controller (Private)

- (void)thisIsAPrivateMethod;

@end

下面的代码就是怎样获取私有变量(记得加头文件#import <objc/runtime.h>):
NSString *str;

Mobj *obj = [[Mobj alloc] init];

object_getInstanceVariable(obj, "mt_", (void *)&str);

NSLog(@"%@",str);

[obj release];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐