48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
id ret;
if (typeEncoding == NULL)
return [self valueForUndefinedKey: key];
switch (nextType(&typeEncoding)) {
case '@':
ret = [self performSelector: selector];
break;
#define CASE(encoding, type, method) \
case encoding: \
{ \
type (*getter)(id, SEL) = (type(*)(id, SEL)) \
[self methodForSelector: selector]; \
|
>
|
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
id ret;
if (typeEncoding == NULL)
return [self valueForUndefinedKey: key];
switch (nextType(&typeEncoding)) {
case '@':
case '#':
ret = [self performSelector: selector];
break;
#define CASE(encoding, type, method) \
case encoding: \
{ \
type (*getter)(id, SEL) = (type(*)(id, SEL)) \
[self methodForSelector: selector]; \
|
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
[self setValue: value
forUndefinedKey: key];
return;
}
switch (valueType) {
case '@':
{
void (*setter)(id, SEL, id) = (void(*)(id, SEL, id))
[self methodForSelector: selector];
setter(self, selector, value);
}
break;
#define CASE(encoding, type, method) \
|
>
|
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
[self setValue: value
forUndefinedKey: key];
return;
}
switch (valueType) {
case '@':
case '#':
{
void (*setter)(id, SEL, id) = (void(*)(id, SEL, id))
[self methodForSelector: selector];
setter(self, selector, value);
}
break;
#define CASE(encoding, type, method) \
|