//
// ViewController.h
// UIText
//
// Created by ethyn on 15/6/14.
// Copyright (c) 2015年 ethyn. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
NSString *_name;
CGFloat _price;
}
@property (nonatomic,readwrite) NSString *name;
@property (nonatomic,readwrite) CGFloat price;
@end
//
// ViewController.m
// UIText
//
// Created by ethyn on 15/6/14.
// Copyright (c) 2015年 ethyn. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
{
//myView;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
ViewController *myView = [[ViewController alloc]initWithName:@"xiaowang" andPrice:0];
myView.name = @"liming";
myView.price = 12;
NSLog(@"%@ %lf",myView.name,myView.price);
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@synthesize name = _name;
@synthesize price = _price;
-(id)initWithName:(NSString *)name andPrice:(CGFloat)price
{
self = [super init];
if (self) {
_name = name;
_price = price;
[self addObserver:self forKeyPath:@"price" options:NSKeyValueObservingOptionNew context:0];
[self addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:0];
}
return self;
}
-(void)setPrice:(CGFloat)price
{
_price = price;
}
-(void)setName:(NSString *)name
{
_name = name;
}
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"name"]) {
NSLog(@"the new name is %@",[object name]);
}
else if([keyPath isEqualToString:@"price"])
{
NSLog(@"the new price is %lf",[object price]);
}
else
{
NSLog(@"how can it be go through this route");
}
}
- (void)dealloc
{
[self removeObserver:self forKeyPath:@"name" context:0];
[self removeObserver:self forKeyPath:@"price" context:0];
}
@end
打印结果
2015-06-15 01:15:05.705 UIText[2313:56270] the new name is liming
2015-06-15 01:15:05.706 UIText[2313:56270] the new price is 12.000000
2015-06-15 01:15:05.706 UIText[2313:56270] liming 12.000000