objective-c之复合对象

#import <Foundation/Foundation.h>

//自定义验证表数组ValidatingArray
@interface ValidatingArray : NSMutableArray
{
    NSMutableArray *embeddedArray;
}

+ validatingArray;
- init;
- (unsigned)count;
- objectAtIndex:(unsigned)index;
- (void)addObject:object;
- (void)replaceObjectAtIndex:(unsigned)index withObject:object;
- (void)removeLastObject;
- (void)insertObject:object atIndex:(unsigned)index;
- (void)removeObjectAtIndex:(unsigned)index;

@end

@implementation ValidatingArray

- init
{
    self = [super init];
    if (self) {
        embeddedArray = [[NSMutableArray allocWithZone:[self zone]] init];
    }
    return self;
}

+ validatingArray
{
    return [[self alloc] init] ;
}
- (unsigned)count
{
    return [embeddedArray count];
}
- objectAtIndex:(unsigned)index
{
    return [embeddedArray objectAtIndex:index];
}
- (void)addObject:(id)object
{
    if (object != nil) {
        [embeddedArray addObject:object];
    }
}
- (void)replaceObjectAtIndex:(unsigned)index withObject:(id)object;
{
    if (index <[embeddedArray count] && object != nil) {
        [embeddedArray replaceObjectAtIndex:index withObject:object];
    }
}
- (void)removeLastObject;
{
    if ([embeddedArray count] > 0) {
        [embeddedArray removeLastObject];
    }
}
- (void)insertObject:(id)object atIndex:(unsigned)index;
{
    if (object != nil) {
        [embeddedArray insertObject:object atIndex:index];
    }
}
- (void)removeObjectAtIndex:(unsigned)index;
{
    if (index <[embeddedArray count]) {
        [embeddedArray removeObjectAtIndex:index];
    }
}

@end

//http://www.yiibai.com/objective_c/objective_c_composite_objects.html
int main()
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    
    ValidatingArray *validatingArray = [ValidatingArray validatingArray];
    [validatingArray addObject:@"Object1"];
    [validatingArray addObject:@"Object2"];
    [validatingArray addObject:[NSNull null]];
    [validatingArray removeObjectAtIndex:2];
    NSString *aString = [validatingArray objectAtIndex:1];
    NSLog(@"The value at Index 1 is %@",aString);
    
    aString = [validatingArray objectAtIndex:0];
    NSLog(@"The value at Index 0 is %@",aString);
    
    
    [pool drain];
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值