object-c 知识点

来源:互联网 发布:如何选购网络电视 编辑:程序博客网 时间:2024/06/03 02:34
1. Objective-C无法区分公有私有方法,因为它全是公有的。因此,除非就是为了让用户调用所设计,不要把其他的方法放到公有API里。这样可以减少不期调用的可能性。这还包括重写父类的方法。对于那些内部实现的方法,在实现文件里使用类别而不是将方法定义在公有头文件里。

// GTMFoo.m

#import"GTMFoo.h"

@interface GTMFoo(PrivateDelegateHandling)

- (NSString*)doSomethingWithDelegate;  // Declareprivate method

@end

@implementationGTMFoo(PrivateDelegateHandling)

...

- (NSString*)doSomethingWithDelegate {

  // Implement this method

}

...

@end



2. 属性遵循如下规则:属性是Objective-C2.0的特性,所以只能跑在iPhone以及MacOSX10.5(leopard)或更高的版本。

一个有属性关联实例变量都要在后面加下划线,而该属性的名称就是实例变量不加尾部的下划线的名字。

使用@synthesize标识以正确的重命名属性。

@interface MyClass: NSObject {

 @private

  NSString *name_;

}

@property(copy,nonatomic) NSString *name;

@end

 

@implementationMyClass

@synthesize name =name_;

@end

属性的声明必须紧接变量申明的括号后。属性的定义应该紧接@implementation模块后面。它和@interface 或者@implementation 的缩进是相同的。

@interface MyClass: NSObject {

 @private

  NSString *name_;

}

@property(copy,nonatomic) NSString *name;

@end

 

@implementationMyClass

@synthesize name =name_;

- (id)init {

...

}

@end