【非凡程序员】 OC第九节课 (KVC的使用)

今天主要学习了
1.关键字@synthesize
我们使用@property定义属性之后,有时候我们不想定义属性为_开头的参数名,
如果我们想修改这个属性的名称,就可以使用@synthesize关键字来对属性名称进行修改

2.点语法
①可以用作set和get调用
Person *person1=[[Person alloc]init];
person1.name="zhang"; //用法和[person1 setName:"zahng"]一样;
NSLog("name:%",person1.name);
②在CGpoint、CGsize、CGrent的使用中

3.KVC用法(简化代码)
①:Person.m文件中
//通过传进来的属性和属性值进行set和get
-(void ) mainF :(NSString *)key :(NSString *)value {
[self setValue:value forKey:key ];
NSLog("%",[self valueForKey:key]);
}
main.m函数中:
//属性和属性值通过传进去,进行set和get
Person *person1=[[Person alloc]init];
[person1 mainF:"name" :"zhang"];
[person1 mainF:"age" :"66"];
②main.m函数中:
person1.name="zhang";
Dog *dog=[[Dog alloc]init];
dog.name="zangao";
[person1 setDog:dog];

//通过人对象改狗的名字 [person1 setValue:"xiaohei" forKeyPath:"dog.name"]; NSLog("狗名:%",[person1 valueForKeyPath:"dog.name"]);//直接修改人的名字 [person1 setValue:"gaohui" forKeyPath:"name"]; NSLog("人名:%",[person1 valueForKeyPath:"name"]);

时间: 2024-10-26 17:04:50

【非凡程序员】 OC第九节课 (KVC的使用)的相关文章

【非凡程序员】 OC第九节课 (KVO的应用)

这是一个QQ密码登陆地址和密码同时被修改时,通知用户QQ账号出现问题 该题难度主要在于判断监控的两次数据都是被修改的 有两种方案: ①定义一个可变的数组,把每次监控到的新旧数据添加进去,进行对比 ②定义一个变量,每修改一次,该变量就自加一次,判断为2时,通知用户 (1)main函数//  main.m//  QQ被盗////  Created by 非凡程序员 on 15/5/27.//  Copyright (c) 2015年 非凡程序员. All rights reserved.// #im

【非凡程序员】 OC第九节课 (KVC的运算)

买粽子的例子,主要输练习KVC的应用,(注意:必须建立一个数组,才能使用KVC的运算)详细代码如下: 1.main函数代码: #import <Foundation/Foundation.h> #import "Person.h" #import "zongZi.h" int main(int argc, const char * argv[]) {     @autoreleasepool {         // insert code here..

【非凡程序员】 OC第十五节课 (观察者模式和KVO进行对比)

今天主要学了观察者模式,以及回顾复习了KVO,两者进行对比 什么是观察者模式? 我们先打个比方,这就像你订报纸.比如你想知道美国最近放生了些新闻,你可能会订阅一份美国周刊,然后一旦美国有了新的故事,美国周刊就发一刊,并邮寄给你,当你收到这份报刊,然后你就能够了解美国最新的动态.其实这就是观察者模式,A对B的变化感兴趣,就注册为B的观察者,当B发生变化时通知A,告知B发生了变化.这是一种非常典型的观察者的用法,我把这种使用方法叫做经典观察者模式 KVO的全称是Key-Value Observer,

【非凡程序员】 OC第五节课 (数据类型NSString和NSString)

//  main.m//  ZiFuChuan////  Created by 非凡程序员 on 15/5/18.//  Copyright (c) 2015年 非凡程序员. All rights reserved.// #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) {    @autoreleasepool { NSString *[email protected]"AB"

【非凡程序员】  OC第十节课 (代码块)

代码块就相当于C语言中一个函数一样 ////  main.m//  DaiMaKuai////  Created by 非凡程序员 on 15/5/28.//  Copyright (c) 2015年 非凡程序员. All rights reserved.// #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) {    @autoreleasepool { int i=7; //代码块格式如下: 

【黑马程序员】第12课:文件上传&文件下载&注解

<pre> day12 上节内容回顾 1.jstl的标签 *if  choose *forEach <c:forEachvar="l" items="${list}"> 2.jsp开发模式 *模型一 *模型二(mvc模式) **mvc模式 ***m:模型,使用javabean ***v:视图,使用jsp ***c:控制器,使用servlet *dao模式:数据访问对象,专注于对数据库的操作 **首先创建接口,在接口里面定义操作数据库的方法 *

Linux学习第九节课-shell脚本编程

Linux第九节课 -------------------------------------------------------------------------------------------------------------------------------- 程序:算法+数据结构 数据:程序的核心 算法:处理数据的方式 程序编程风格 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 高级编程语言 编译:高级语言→编译器→机器代码→执行,例如c,c++等

[非凡程序员]手写UIDatePicker和UIPickerView

// //  ViewController.h //  手写UIDatePicker // //  Created by 非凡 程序员 on 15/11/13. //  Copyright (c) 2015年 非凡 程序员. All rights reserved. // #import <UIKit/UIKit.h> @interface  ViewController : UIViewController @property(nonatomic,strong)UIDatePicker *d

黑马程序员——oc语言学习心得—— 属性声明和赋值

黑马程序员——oc语言学习心得—— 属性声明和赋值 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1,在oc中所有类继承与终极父类Object2,声明字符变量采用N是string  *_xxx 实例变量一般以下划线开头3,在oc中方法以+ -号区分 -号开头是实例方法或对象方法  +号开头是类方法  前置用对象调用 后者用类名调用4,在xcode4以后声明@property 不用在写@snysize  自动生成get.set方法5,属性