24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
IMP init;
IMP retain;
IMP release;
@interface TestObject: OFObject
- init;
- retain;
- (void)release;
@end
@implementation TestObject
- init
{
id ret;
|
|
|
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
IMP init;
IMP retain;
IMP release;
@interface TestObject: OFObject
- init;
- retain;
- release;
@end
@implementation TestObject
- init
{
id ret;
|
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
ret = retain(self, _cmd);
printf("Retaining %s to " ZD "\n", [self name], [ret retainCount]);
return ret;
}
- (void)release
{
printf("Releasing %s to " ZD "\n", [self name], [self retainCount] - 1);
release(self, _cmd);
}
@end
int
main()
{
init = [OFObject replaceMethod: @selector(init)
|
|
|
|
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
ret = retain(self, _cmd);
printf("Retaining %s to " ZD "\n", [self name], [ret retainCount]);
return ret;
}
- release
{
printf("Releasing %s to " ZD "\n", [self name], [self retainCount] - 1);
return release(self, _cmd);
}
@end
int
main()
{
init = [OFObject replaceMethod: @selector(init)
|