我有一个名为“Book”的类,源代码如下: -
Book.h
#import <"UIKit/UIKit.h>
@interface Book : NSObject {
NSInteger bookID;
NSString *title; //Same name as the Entity Name.
NSString *author; //Same name as the Entity Name.
NSString *summary; //Same name as the Entity Name.
}
@property (nonatomic, readwrite) NSInteger bookID;
@property (nonatomic, retain) NSString *title;
@property (nonatomic, retain) NSString *author;
@property (nonatomic, retain) NSString *summary;
@end
Book.m
#import "Book.h"
@implementation Book
@synthesize title, author, summary, bookID;
-(void) dealloc {
[summary release];
[author release];
[title release];
[super dealloc];
}
@end
然后在另一个班级中我可以写: -
Book *aBook = [[Book alloc]init];
[aBook setValue:currentElementValue forKey:elementName];
如果是,那为什么?因为通常setvalue和forkey用于在NSMutableDictionary中存储数据..
答案 0 :(得分:0)
基本上,键值编码旨在处理对象的属性。 Key-Value Coding Programming Guide以行开头,
键值编码是间接访问对象属性的机制,使用字符串来标识属性,而不是通过调用访问器方法或直接通过实例变量访问它们。实质上,键值编码定义了应用程序访问器方法实现的模式和方法签名。
setObject:forKey:和 removeObjectForKey:方法旨在与字典一起使用。您还可以使用 setValue:forKey:方法将值设置为字典。但是,您不能对类对象使用 setObject:forKey:方法。
另一个区别是 setObject:forKey:不接受 nil 作为值。相反,您应该使用 NSNull 作为值。但是 setValue:forKey:接受 nil 并从字典中删除密钥,从而节省了内存。
[如果我错了,请有人纠正我!]