2016-04-10 2 views
0

Я слежу за this tutorial, чтобы начать разработку базового игрового программирования в Свифте. Я закончил упомянутое учебное пособие, но хочу реорганизовать то, что я сделал, и хотел бы знать, есть ли способ хранить глобальные функции (пример, приведенный ниже) в собственном файле, который затем включаю как-то для использования в классе GameScene ,Отделить глобальные функции от собственного файла?

func + (left: CGPoint, right: CGPoint) -> CGPoint { 
    return CGPoint(x: left.x + right.x, y: left.y + right.y) 
} 

В настоящее время существует несколько таких перегруженных операторов, сидящих в том же файле, что и мой класс GameScene, но объявленная вне его, и он чувствует себя грязным/раздутой.

ответ

1

Просто поместите их в отдельный файл Swift. Быстрые функции (а также классы, структуры, перечисления и т. Д.) По умолчанию - internal, что означает, что они могут использоваться из любого места в пределах одного и того же модуля. Пока новый файл принадлежит к тому же модулю, нет необходимости ничего импортировать.

Вы можете найти больше на эту тему здесь: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html

+1

О боже ... Я не могу поверить, что все так просто! Спасибо :) – sowasred2012

0

Вы можете использовать расширение. В вашем случае вы добавите расширение в любой файл viewController. Расширение не может быть помещено в класс viewController, другими словами, вы добавляете расширение после последней фигурной скобки «}» в нижней части кода. Вот что я буду использовать:

extension UIViewController { 

    func + (left: CGPoint, right: CGPoint) -> CGPoint { 
    return CGPoint(x: left.x + right.x, y: left.y + right.y) 
} 
} 

Вы можете затем вызвать функцию в любом классе viewController в этом проекте.

Смежные вопросы