Я читал об обходе сообщений Objective-C для повышения производительности (не относящихся к этому конкретному вопросу), когда нашел интересный фрагмент кода:
#import <Cocoa/Cocoa.h>
@interface Fib : NSObject { }
- (long long) cFib: (NSUInteger) number;
@end
@implementation Fib
// c implementation of fib
long long cFibIMP(NSUInteger number)
{
return (number < 3) ? 1 : cFib(number - 1) + cFib(number - 2);
}
// method wrapper for c implementation of fib
- (long long) cFib: (NSUInteger) number
{
return cFibIMP(number);
}
@end
Мой вопрос; при использовании функции c в объекте target-c, в какую область помещается функция c (в данном случае cFibIMP)? Инкапсулирует ли объектjective-c функцию c, удаляя изменение имени-коллизии, или функция c просто сбрасывается в глобальную область действия всей программы target-c?