今天主要学习了
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"]);