Intereting Posts
Как изменить текст в зависимости от того, где я нахожусь в своем прокрутке? Как правильно разорвать сеанс соединения мультиплеера? Если есть обратная связь с этим соотношением iOS: размер приложения после добавления статической библиотеки C ++ слишком велик? Какова цель файлов моделей? Что такое заглянуть и поп-сила на новые iPhone? Является ли использование getters и seters способом передачи сообщения от родительского UIViewController к методу в классе UIView? Создание класса Runtime в iPhone Как исправить искаженные изображения большого пальца, полученные с помощью AVAssetImageGenerator? PFUser бросает NSInternalInconsistencyException при вызове objectForKey после fetchAllIfNeeded Xcode: можно привязать пользовательские атрибуты к элементам управления от дизайнера? UICollectionView hitTest -> нормальное поведение google mobile ads sdk linking isue iOS – Получение CFReadStream / CFWriteStream из сокета Как оживить CIFilter с CoreAnimation в iOS?

Как я могу заменить #define для обычного быстрого и объективного использования c

Наш продукт написан в объективе C, и мы начали писать новые функции в быстром.

Это что-то написано в нашем глобальном файле –

#define SPXFontHelveticaBold(SIZE) [UIFont fontWithName:@"Helvetica" size:SIZE] 

Я не могу использовать это в своем быстром классе.

Solutions Collecting From Web of "Как я могу заменить #define для обычного быстрого и объективного использования c"

UIFont нет, но вы можете достичь такой же функциональности, используя следующий блок кода, который возвращает UIFont .

 func SPXFontHelveticaBold (s:CGFloat) -> UIFont{ return UIFont (name: "Helvetica", size:s ) } 

или вы можете определить struct Helper, которая выполняет следующие функции.

 struct Helper { static func SPXFontHelveticaBold(s: CGFloat) -> UIFont { return UIFont (name: "Helvetica", size:s ) } let font = Helper.SPXFontHelveticaBold(14) 

Swift не поддерживает макросы. В документах Apple указано, что:

Объявите простые макросы как глобальные константы и переведите сложные макросы в функции.

Поэтому объявляйте его глобальной функцией и используйте так же, как раньше.

 func SPXFontHelveticaBold(size: CGFloat) -> UIFont { return UIFont(name: "Helvetica", size: size) } 

Я заменил прагму следующим:

 static inline UIFont* SPXFontHelveticaBold(CGFloat SIZE) { return [UIFont fontWithName:@"Helvetica" size:SIZE]; }