//OC属性
setter getter 都是为了给成员变量赋值,不是给属性,成员变量再给属性值
为了给_name赋值
//setter 给成员变量赋值
- (void)setName:(NSString *)a
{
_name = a;
}
//getter 取值获得成员变量的值
- (NSString *)name
{
return _name;
}
每次要为一个属性写上getter和setter,不得不手十分麻烦,所以有了更简单的写法,在.h文件里,写个属性表示声明了一个实例属性和它的getter和setter器
然后在.m文件中这样写,表示实现setteer和getter
@synthesize name = _name;
这样,就可以和以前一样调用getter和setter了。
给属性赋值的方式 把通过setter 方法获取值的 成员变量赋给属性
@synthesize name = _name;
//在setter方法中 self就是car类的对象 car调用name属性 又通过setter方法赋值 赋值之后在调用name进行赋值 造成递归
- (void)setName:(NSString *)a
{
self.name = a;
}
//KVC 最大的用处是字典和model的转换
//重写父类方法
//如果没有定义这个属性,那么什么都不做
//如果是字典给model 来赋值,通过KVC 的方式来赋值,那么一定要写这个方法
-(void)setValue:(id)value forUndefinedKey:(NSString*)key
{
}
//字典和model的转换
Car *car = [[Caralloc]init];
car.name = @"888";
[car setValue:@"ni"forKey:@"name"];
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setObject:@"wo"forKey:@"name"];
[car setValuesForKeysWithDictionary:dic];