我在iOS上尝试非常简单的KVC来学习。
#import <Foundation/Foundation.h>
@interface KVC : NSObject
@property (nonatomic,strong)NSString *string;
@end
在.m文件中
@implementation KVC
@synthesize string=_string;
@end
主中的
int main(int argc, char *argv[])
{
KVC *kvc;
[kvc setValue:@"tunvir" forKey:@"name"];
NSLog(@"%@",[kvc valueForKey:@"name"]);
}
我期待在控制台中使用“ tunvir ”,但它会返回null! 感谢
答案 0 :(得分:2)
您必须分配并初始化对象。
并且您使用名称string
定义了该属性,因此您应该使用该名称而不是name
int main(int argc, char *argv[])
{
KVC *kvc;
kvc = [[KVC alloc] init];
[kvc setValue:@"tunvir" forKey:@"string"];
NSLog(@"%@",[kvc valueForKey:@"string"]);
}
答案 1 :(得分:1)
您缺少堆栈中对象的实例初始化。
kvc = [[KVC alloc] init];