Objective-C 类集合简介(文档)

类集合是一种设计模型,能够简化程序设计,一般附带一种或几种设计模式或框架。并且拥有大量相关类型,其中包含工厂类及方法,采用面向对象及其它设计模型,让程序设计更加简单与有效。


  • 创建实例
NSNumber *aChar = [NSNumber numberWithChar:’a’];
NSNumber *anInt = [NSNumber numberWithInt:1];
NSNumber *aFloat = [NSNumber numberWithFloat:1.0];
NSNumber *aDouble = [NSNumber numberWithDouble:1.0];
  • 一个小例子,类继承
#import <foundation/foundation.h>
@interface MonthArray : NSArray
{
}
+ monthArray;
- (unsigned)count;
- (id)objectAtIndex:(unsigned)index;
@end
#import "MonthArray.h"
  @implementation MonthArray
static MonthArray *sharedMonthArray = nil;
  static NSString *months[] = { @"January", @"February", @"March",
      @"April", @"May", @"June", @"July", @"August", @"September",
      @"October", @"November", @"December" };
  + monthArray
  {
      if (!sharedMonthArray) {
          sharedMonthArray = [[MonthArray alloc] init];
}
      return sharedMonthArray;
  }
  - (unsigned)count
  {
return 12; }
  - objectAtIndex:(unsigned)index
  {
      if (index >= [self count])
          [NSException raise:NSRangeException format:@"***%s: index
              (%d) beyond bounds (%d)", sel_getName(_cmd), index,
              [self count] - 1];
      else
          return months[index];
}
@end
  • 类集成
@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
#import "ValidatingArray.h"
  @implementation ValidatingArray
- init {
      self = [super init];
      if (self) {
          embeddedArray = [[NSMutableArray allocWithZone:[self zone]] init];
      }
    return self;
}

+ validatingArray
  {
      return [[[self alloc] init] autorelease];
  }
  - (unsigned)count
  {
      return [embeddedArray count];
  }
  - objectAtIndex:(unsigned)index
  {
      return [embeddedArray objectAtIndex:index];
  }
  - (void)addObject:object
  {
      if (/* modification is valid */) {
          [embeddedArray addObject:object];
} }
  - (void)replaceObjectAtIndex:(unsigned)index withObject:object;
  {
      if (/* modification is valid */) {
          [embeddedArray replaceObjectAtIndex:index withObject:object];
} }
  - (void)removeLastObject;
  {
      if (/* modification is valid */) {
          [embeddedArray removeLastObject];
} }
  - (void)insertObject:object atIndex:(unsigned)index;
  {
      if (/* modification is valid */) {
          [embeddedArray insertObject:object atIndex:index];
} }
  - (void)removeObjectAtIndex:(unsigned)index;
  {
      if (/* modification is valid */) {
          [embeddedArray removeObjectAtIndex:index];
} }

代理,受委托代表“当事人”进行某种”活动“。类的实例就是普通的对象,一般对象都有相应的生命周期,做为一个有生命的个体,因为程序设计和运行需要许多对象相互协作才能完成相应的功能。对象之间存在一种关系,代理。即某类的某些功能由另一个代理类来实现。这样可以降低设计的偶和性,增强程序的稳定性。最常用的就是事件处理,如网络交互,普通用户交互等。这样的设计更加专注,也更加有效,更加贴近用户需求及用户体验与习惯。

数据源,由于采用了MVC模型,数据和视图的分离,加强了数据的可设计性,这让整个程序更加美观和科学。只关注用户数据就可以了,这样的设计更加专一和有效。如表格、列表,不用太过关注用户交互,只是对数据显示的内容进行设计就可以了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值