Ich bin auf der Suche nach einem kurzen Weg der Einstellung meiner Eigenschaften direkt zu einem NSMutableDictionary, die eine Instanzvariable ist. dh:
KVCModle.h:
@interface KVModel : NSObject {
NSMutableDictionary * data;
}
@property(nonatomic,assign)NSString * string1;
@property(nonatomic,assign)NSString * string2;
@end
KVCModel.m
#import "KVModel.h"
@implementation KVModel
-(id)init
{
self = [super init];
if(self)
{
data = [[NSMutableDictionary alloc] init];
}
return self;
}
-(NSString *)string1
{
return [data objectForKey:@"string1"];
}
-(NSString *)string2
{
return [data objectForKey:@"string2"];
}
-(void)setString1:(NSString *)_string1
{
[data setObject:_string1 forKey:@"string1"];
}
-(void)setString2:(NSString *)_string2
{
[data setObject:_string2 forKey:@"string2"];
}
-(void)dealloc
{
[data release];
[super dealloc];
}
@end
Ich habe versucht, Folgendes zu überschreiben setValue:ForKey:
y valueForKey:
aber diese werden nicht aufgerufen, sondern ermöglichen es Ihnen, Eigenschaften direkt festzulegen, ohne die Eigenschaftssyntax zu verwenden.
Ich habe in der Vergangenheit Präprozessormakros erstellt, um dies zu ermöglichen, aber ich bin überhaupt nicht an Tipparbeit interessiert und möchte sie in Zukunft so weit wie möglich vermeiden. Gibt es eine mir unbekannte Möglichkeit, dies zu erreichen?
Ich habe darüber nachgedacht, NSManagedObject zu verwenden, aber ich bin nicht sicher, ob ich das, was ich will, damit erreichen kann. EDIT: Quelle