如: [self addObserver:self forKeyPath:@"items" options:0 context:contexStr];
当然你还可以监听其他对象的属性变化,如:[person addObserver:money forKeyPath:@"account" options:0 context:contexStr];
提供的方法有:
(1)setValue:forKeyPath:根据Key属性设置属性值
(2)valueForKeyPath:根据Key属性获取属性值
方法使用很简单。
如果一个类中含有name属性,然后再另一个新类中定义了该类的变量,就可以使用Key路径设置属性值。
FKUser.h
#import <Foundation/Foundation.h>
@interface FKUser : NSObject
@property (nonatomic,copy)NSString* name;
@end
FKUser.m
#import "FKUser.h"
@implementation FKUser
@synthesize name;
@end
FKItems.h
#import <Foundation/Foundation.h>
#import "FKUser.h"
@interface FKItems : NSObject
@property FKUser* item;
@end
FKItems.m
#import "FKItems.h"
@implementation FKItems
@synthesize item;
@end
main.m
#import <Foundation/Foundation.h>
#import "FKItems.h"
#import "FKUser.h"
int main (int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
FKItems* it = [[FKItems alloc] init];
// it = [[FKUser alloc] init];
[it setValue:[[FKUser alloc] init] forKey:@"item"];
[it setValue:@"yu" forKeyPath:@"item.name"];
NSLog(@" %@ ",[it valueForKeyPath:@"item.name"]);
}
return 0;
}