观察者模式的使用

首先分析以下 优势 

观察者模式 是每个继承NSObject 对象都会有的一个小东西 

例如下载一批图片 想要等待 图片都下载好 给使用者 就可以使用delegate 

被观察对象 

#import <Foundation/Foundation.h>

typedef enum {

    testSuccessNotGot = 0,

    testSuccess,

    testFail

}testType;


@interface test : NSObject{

    NSInteger selectInt;

}

@property (nonatomic,assign) testType testGotState;

- (void)setText;

@end




#import "test.h"


@implementation test

@synthesize testGotState = _testGotState;




- (void)executeShow{


    _testGotState = testSuccess;

}


- (id)init{

   self = [super init];

    if (self) {

        [self performSelector:@selector(executeShow) withObject:nil afterDelay:3];

    }

    return self;

}


- (void)setText{


    _testGotState = testFail;

}


想要观察这个类

    self.mTest = [[[test alloc]init ] autorelease];

    

    [self addObserver:self forKeyPath:@"mTest.testGotState" options:NSKeyValueObservingOptionInitial context:self.mTest];

- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{

    if (context == self.mTest) {

        if ([keyPath isEqualToString:@"mTest.testGotState"]) {

            switch (self.mTest.testGotState) {

                case 0:

                    NSLog(@"开始时");

                    break;

                case 1:

                    NSLog(@"成功!");

                    break;

                case 2:

                    NSLog(@"失败!");

                    break;

                default:

                    break;

            }

        }

    }

}


然后根据不同的情况去处理吧 ! 呵呵 



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值