Существует ли соглашение об именах, которое позволит Swift автоматически связывать функции C, которые действуют на структуру, с самой структурой?
Например, CGRect объявляется следующим образом:
struct CGRect {
CGPoint origin;
CGSize size;
};
typedef struct CG_BOXABLE CGRect CGRect;
...
CG_EXTERN CGFloat CGRectGetMinX(CGRect rect)
CG_AVAILABLE_STARTING(10.0, 2.0);
Но я могу написать код Swift следующим образом:
let rect = CGRect()
let minX = rect.minX
Я пытался скопировать то же самое в надежде, что смогу получить то же поведение из своих собственных структур Си, но, похоже, не могуэто работает правильно.
Это автоматическое поведение связано именно с тем, как именно объявляется структура, или оно добавляется в другом месте с помощью расширений / какой-то другой магии?Если это через расширения, как запретить оригинальную функцию CGRectGetMinX
в Swift?