1

我正在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!谢谢

4

2 回答 2

2

您将不得不分配和初始化对象。并且您使用名称定义了属性,string因此您应该使用该名称而不是name

int main(int argc, char *argv[])
{
    KVC *kvc;
    kvc = [[KVC alloc] init];
    [kvc setValue:@"tunvir" forKey:@"string"];
    NSLog(@"%@",[kvc valueForKey:@"string"]);
}
于 2013-05-13T13:35:40.783 回答
1

您缺少堆栈中对象的实例的初始化。

   kvc = [[KVC alloc] init];
于 2013-05-13T13:37:37.830 回答