Как я могу использовать эту библиотеку с Swift 3?
Он должен работать, если вы добавите заголовок моста Objective-C! :)
В какой-то момент я посмотрю, смогу ли я улучшить дизайн API, чтобы сделать его более «быстрым».
Я использую TOCropViewController в проекте Swift 3 через cocoapods, работает без ошибок.
Ожидаем быстрой версии, пожалуйста # @akovalov :) :) :)
@osmanyildirim На самом деле ничего нельзя «ожидать» от бесплатного проекта с открытым исходным кодом. ;)
Если вам отчаянно нужна встроенная поддержка Swift 3, не стесняйтесь реализовать ее самостоятельно. : D
Этот проект написан на Objective-C, и нет необходимости вносить изменения в код (или полностью переписывать его на Swift), чтобы использовать его в Swift 3 или другом коде версии Swift, потому что файлы Objective-C и Swift могут сосуществовать в одном проект. Поэтому, если вы используете его через CocoaPods, тогда пример базовой реализации из Readme в Swift будет выглядеть так:
import TOCropViewController
func presentCropViewController() {
let image: UIImage = ... // Load an image
let cropViewController = TOCropViewController(image: image)
cropViewController.delegate = self
present(cropViewController, animated: true, completion: nil)
}
func cropViewController(_ cropViewController: TOCropViewController!, didCropTo image: UIImage!, with cropRect: CGRect, angle: Int) {
// 'image' is the newly cropped version of the original image
}
Если вы копируете исходный код в проект Swift, ознакомьтесь с разделом «Импорт Objective-C в Swift» здесь https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html, а затем используйте аналогичный пример выше.
Я немного поигрался с улучшением взаимодействия Swift с этим проектом. Если не считать полного рефакторинга имен методов с использованием NS_SWIFT_NAME
, я ДУМАЮ, что это почти все, что мы можем сделать.
Если вы можете придумать что-нибудь еще, что нужно для улучшения взаимодействия Swift, пожалуйста, напишите PR. :)
Самый полезный комментарий
Этот проект написан на Objective-C, и нет необходимости вносить изменения в код (или полностью переписывать его на Swift), чтобы использовать его в Swift 3 или другом коде версии Swift, потому что файлы Objective-C и Swift могут сосуществовать в одном проект. Поэтому, если вы используете его через CocoaPods, тогда пример базовой реализации из Readme в Swift будет выглядеть так:
Если вы копируете исходный код в проект Swift, ознакомьтесь с разделом «Импорт Objective-C в Swift» здесь https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html, а затем используйте аналогичный пример выше.