Ist es möglich, in KVC einen Platzhalter zu verwenden?

Ich versuche, in KVC wie folgt Platzhalter zu verwenden.

Ist es möglich?

Oder gibt es andere Möglichkeiten, einen Platzhalter zum Anzeigen einer Mitgliedsvariablen zu verwenden?

@interface MyClass : NSObject
@property(nonatomic, retain) NSNumber *test1;
@property(nonatomic, retain) NSNumber *test2;
@end

@implementation MyClass{
    NSNumber * test1;
    NSNumber * test2;
}
@synthesize test1;
@synthesize test2;
@end

mit Wildcard

MyClass *testClass = [[[MyClass alloc] init] autorelease];
testClass.test1 = @50;

NSLog(@"test value : %@", [testClass valueForKey:@"*1"]);

Für Detailcodes.

Ein realer Grund, den ich wollte, ist, eine Mitgliedsvariable der Instanz durch den Wert des Integer- oder Nsnumber-Typs anzugeben. Wenn möglich, ist es einfacher, Werte für jede Instanz festzulegen und zu lesen.

Zum Beispiel von Eigenschaftsteilkopien.

MyClass *testClass = [[[MyClass alloc] init] autorelease];
testClass.year_1 = @2012;
testClass.quarter_2 = @3;
testClass.month_3 = @8;
testClass.day_4 = @20;
testClass.week_5 = @4;

// copy propertys to other instance.
// Normal way
MyClass *testClassCopy = [[[MyClass alloc] init] autorelease];
testClassCopy.year_1 = testClass.year_1;
testClassCopy.quarter_2 = testClass.quarter_2;
testClassCopy.month_3 = testClass.month_3;
testClassCopy.day_4 = testClass.day_4;

// copy propertys by using wildcard
for (int j = 0; j < 4; j++) {
    NSString *indicate = [NSString stringWithFormat:@"*%@", [NSNumber numberWithInteger:j + 1]];
    NSNumber *sourceProperty = [testClass valueForKey:indicate];
    [testClassCopy setValue:sourceProperty forKey:indicate];
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage