object c学习笔记(1)

1)  Using Categories to add new methods for a class without modification to original source code.

2)  Using Categories to implement private method.

3) Dynamic types.

4) Polymorphism: Use pose or  type of id to implement polymorphism (id is a special type which can be any type of object C);

   Pose:  Use subclass as superclass.

Syntax: [PoseAClass poseAsClass: [AClass class]];
Once you pose a class(A) as B, then all A will replaced by B. With this way, you can overload method.

5)  Protocols: Like interface of Java or purely virtual class of C++.

You can use it to implement interface.

Syntax:

@protocol ProtocolA
-(void) aMethod;
@end
@interface ClassA: NSObject <ProtocolA> 
@end
@implementation ClassA
-(void) aMethod {
    //Do something
}
@end

You can implement more than one protocols like this: 

@interface ClassA: NSObject <ProtocolA, ProtocolB, ProtocolC> 
@end

And you can use

conformsToProtocol
to check whether an class(object) conforms a protocol like this:

if ( [comp conformsToProtocol: @protocol( ProtocolA)] == YES ) {
        printf( "comp conforms to ProtocolA\n" );
    }

6) Retain/Release   : method of NSObject which used to increase/decrease ref count. Once the ref count is 0, dealloc method will be called.

7) It's unnecessary to check pointer valid, for in Object C, NULL pointer(nil) can be accessed as welll.

8) If your class/object contains any other object(class), you need to release them by yourself in the way of overloading dealloc method like this:

-(void) dealloc {
    [first release];
    [last release];
    [email release];

    [super dealloc];
}

 In your set method, you must keep following steps:

 a)Retain

 b)release

 c) set value.


//Sample:
-(void) setFirst: (NSString*) f {
    [f retain];
    [first release];
    first = f;
}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值