KVC (Key -Value Coding)

发布时间:2016-12-6 16:08:31 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"KVC (Key -Value Coding)",主要涉及到KVC (Key -Value Coding)方面的内容,对于KVC (Key -Value Coding)感兴趣的同学可以参考一下。

参考文档: 《Cocoa Programming for Mac OS X 4》 键-值编码(Key-Value Coding,KVC)是通过变量名读取和设置变量值的一种机制,变量的名字是字符串,但是作为Key来使用。 例如 #import <Foundation/Foundation.h> @interface Person : NSObject {     NSString *name; } @end 就可以使用如下来设置和获取类Person的实例成员变量 name.     Person *p = [[Person alloc]init];     //设置name     [p setValue:@"newName" forKey:@"name"];     //读取name     NSString *newName =  [p valueForKey:@“name”]; 接下来看看KVC在实际编码中的强大威力 绑定(binding) Cocoa中很多图形对象都使用绑定,当开发者绑定一个键到一个图像对象的属性上时,例如绑定键(颜色)到图形的颜色,显示视图就会自动同步,接下来写一个小的Demo,来展示: 随意创建一个Cocoa程序,在AppDelegate.h中 添加 int类型的实例变量sliderNumber #import <Cocoa/Cocoa.h> @interface AppDelegate : NSObject <NSApplicationDelegate> {     int sliderNumber; } //然后使用accessor方法来设置和读取sliderNumber的值, [email protected],更多内容后面将提到 - (int)sliderNumber; - (void)setSliderNumber:(int)x; @property (assign) IBOutlet NSWindow *window; @end 在AppDelegate.m中则对accessor方法实现,并且给出值的打印 - (int)sliderNumber; {     NSLog(@"sliderNumber returned value is %d",sliderNumber);     return sliderNumber; } - (void)setSliderNumber:(int)x; {     NSLog(@"setSliderNumber is called with %d",x);     sliderNumber = x; } 再打开MainMenu.xib拖一个滑动条到View上,并且对滑动条进行设置,如图所示 首先勾选上Control中的Continuous(为了让滑动条拖动的时候,数值一直改变,而不是停止了再获取数据) 然后勾选上Bind To App Delegate,下面的Model Key Path当然就是self.sliderNumber了 编译运行程序,滑动条使用 valueForKey来获取它的初始值,这触发了(sliderNumber方法),当滑动条移动式,调用setValue:forKey来更新sliderNumber的值(这就出发了 setSliderNumber方法)。看看控制台的输出吧。

上一篇:通过jconsole查看tomcat运行情况的配置方法——基于JDK1.5、Linux(Redhat5.5)、Tomcat6
下一篇:程序前后各有一句话,请高手告知

相关文章

相关评论