у меня есть структура HLRange с двумя CGFloat's
struct HOLRange
{
CGFloat min;
CGFloat max;
};
typedef struct HOLRange HOLRange;
но как делают я делаю функцию как HLRangeMake (1,2);.. как CGRectMake?
Править--
мой заголовочный файл
#import <Foundation/Foundation.h>
struct HOLRange
{
CGFloat min;
CGFloat max;
};
typedef struct HOLRange HOLRange;
HOLRange HOLRangeMake(CGFloat min, CGFloat max) {
HOLRange range;
range.min = min;
range.max = max;
return range;
}
@interface Structs : NSObject {
}
@end
error message: ld: duplicate symbol _HOLRangeMake in /Users/Documents/projects/iphone/test/catalog/base1/build/base1.build/Debug-iphoneos/base1.build/Objects-normal/armv6/base1AppDelegate.o and /Users/Documents/projects/iphone/test/catalog/base1/build/base1.build/Debug-iphoneos/base1.build/Objects-normal/armv6/main.o
HOLRange HLRangeMake(CGFloat min, CGFloat max) {
HOLRange range;
range.min = min;
range.max = max;
return range;
}
Вы можете увидеть исходный код CGRectMake в CGGeometry.h так что вы можете сделать то же самое:
CG_INLINE CGRect
CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
{
CGRect rect;
rect.origin.x = x; rect.origin.y = y;
rect.size.width = width; rect.size.height = height;
return rect;
}
Изменить: Вы должны либо определить свою функцию как встроенную, либо переместить ее реализацию в файл .m. Вы получаете ошибки компоновщика, когда ваша функция определяется в каждом модуле компиляции, который импортирует заголовок HoleRange.h (?).