我有一个名为“ Book”的类,其源代码如下:-
书本
#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
书本
#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中。
最佳答案
基本上,键值编码旨在用于对象的属性。 Key-Value Coding Programming Guide从各行开始,
键值编码是一种机制,用于间接访问对象的属性,而不是通过调用访问器方法或通过实例变量直接访问它们,而是使用字符串来标识属性。本质上,键值编码定义了应用程序的访问器方法实现的模式和方法签名。
setObject:forKey:和removeObjectForKey:方法旨在与词典一起使用。您也可以使用setValue:forKey:方法将值设置为字典。但是,不能将setObject:forKey:方法用于类对象。
另外一个区别是setObject:forKey:不接受nil作为值。相反,您应该使用NSNull作为值。但是setValue:forKey:接受nil并从字典中删除键,从而节省了内存。
[如果我在某个地方错了,请有人纠正我!]
关于objective-c - 我们可以为类对象使用setvalue和forkey属性吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6788336/