020.KVC 底层执行机制
2015-07-23 02:33
363 查看
--------------- main.m
---------------
#import
<Foundation/Foundation.h>
@interface
FKDog : NSObject
{
@package
NSString* name;
NSString* _name;
// ①
}
@end
@implementation
FKDog
{
int age;
}
@end
int
main()
{
FKDog* dog = [[FKDog alloc] init];
[dog setValue:@"旺财"
forKey:@"name"];
NSLog(@"dog->name:%@", dog->name);
NSLog(@"dog->_name:%@", dog->_name);
// ②
[dog setValue: [NSNumber numberWithInt:5] forKey:@"age"];
NSLog(@"dog的age:%@",
[dog valueForKey:@"age"]);
}
一、编写本节代码的具体步骤:
1.可仿照第二章001节的代码编写步骤,可以把类的接口文件,类的实现文件写在main.m文件中。
二、本节代码涉及到的知识点:
1.使用KVC方式为name属性赋值,KVC的搜索顺序为:
①setName:方法 ②_name成员变量 ③name成员变量
2.无论成员变量的声明放在@interface部分,还是放在@implementation部分,KVC都能搜索到。
3.如果删除上面代码中的①②两句代码,KVC会把“旺财”赋值给name。
---------------
#import
<Foundation/Foundation.h>
@interface
FKDog : NSObject
{
@package
NSString* name;
NSString* _name;
// ①
}
@end
@implementation
FKDog
{
int age;
}
@end
int
main()
{
FKDog* dog = [[FKDog alloc] init];
[dog setValue:@"旺财"
forKey:@"name"];
NSLog(@"dog->name:%@", dog->name);
NSLog(@"dog->_name:%@", dog->_name);
// ②
[dog setValue: [NSNumber numberWithInt:5] forKey:@"age"];
NSLog(@"dog的age:%@",
[dog valueForKey:@"age"]);
}
一、编写本节代码的具体步骤:
1.可仿照第二章001节的代码编写步骤,可以把类的接口文件,类的实现文件写在main.m文件中。
二、本节代码涉及到的知识点:
1.使用KVC方式为name属性赋值,KVC的搜索顺序为:
①setName:方法 ②_name成员变量 ③name成员变量
2.无论成员变量的声明放在@interface部分,还是放在@implementation部分,KVC都能搜索到。
3.如果删除上面代码中的①②两句代码,KVC会把“旺财”赋值给name。
相关文章推荐
- 019.KVC 键值编码
- mongodb主从复制
- 018.Dot notation 点语法
- 017.retain 属性特性
- 015.assign atomic copy 属性特性
- 016.getter= setter= 属性特性
- iOS开发怎么定位问题出错的代码位置
- android开发变声器
- HDOJ 1280 前m大的数(暴力+快排水过)
- zoj1048
- 享元模式
- Codeforces Round #313 (Div. 2) D. Equivalent Strings
- Nginx HTTP过滤模块开发
- HDU 1710 Binary Tree Traversals
- linux(ubuntu)下编译安装cx_Freeze失败解决方法
- C3PO数据库连接池
- zoj1241
- Codeforces Round #313 (Div. 2) C. Gerald's Hexagon 数学
- 如何使用jlink+gdb在stm32上调试fans-rt
- Hive启动时,遇到java.net.URISyntaxException: Relative path in absolute URI