24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#import "OFOutOfRangeException.h"
static struct {
Class isa;
} placeholder;
@interface OFMutableDataPlaceholder: OFMutableData
@end
@implementation OFMutableDataPlaceholder
- (instancetype)init
{
return (id)[[OFConcreteMutableData alloc] init];
}
- (instancetype)initWithItemSize: (size_t)itemSize
{
|
|
|
|
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#import "OFOutOfRangeException.h"
static struct {
Class isa;
} placeholder;
@interface OFPlaceholderMutableData: OFMutableData
@end
@implementation OFPlaceholderMutableData
- (instancetype)init
{
return (id)[[OFConcreteMutableData alloc] init];
}
- (instancetype)initWithItemSize: (size_t)itemSize
{
|
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
@end
@implementation OFMutableData
+ (void)initialize
{
if (self == [OFMutableData class])
object_setClass((id)&placeholder,
[OFMutableDataPlaceholder class]);
}
+ (instancetype)alloc
{
if (self == [OFMutableData class])
return (id)&placeholder;
|
|
|
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
@end
@implementation OFMutableData
+ (void)initialize
{
if (self == [OFMutableData class])
object_setClass((id)&placeholder,
[OFPlaceholderMutableData class]);
}
+ (instancetype)alloc
{
if (self == [OFMutableData class])
return (id)&placeholder;
|