2017-02-13 8 views
0

я в настоящее время возник некоторые незначительные проблемы с мигрирующим модулем, написанный на Swift 3 в Swift 2,3, в то время как это не может быть идеальным решением я m осталось без параметров, так как у pod нет другой версии, указанной в Swift 2.3.В настоящее время пытается перенести модуль, написанный на Swift 3 Свифт 2,3

Еще одна причина, почему я пытаюсь написать этот модуль в Swift 2.3 потому, что в настоящее время моя компания поддерживает устаревшие продукты поэтому они до сих пор поддерживают старые продукты для клиентов, написанных в Swift 2,3.

Со всем, что, как говорится, моя проблема связана здесь:

Как бы я написать в Swift 2.3?:

let rotation = CABasicAnimation(keyPath: AnimKeys.transform) 
    rotation.toValue = NSValue(caTransform3D: CATransform3DIdentity) 
    rotation.duration = Constants.finishLoadingAnimDuration 
    rotation.delegate = self 
    assignContext(.LoadingFinishing, anim: rotation) 
    for line in lines { 
     rotation.fromValue = NSValue(caTransform3D: ((line.presentation() as? CAShapeLayer)?.transform)!) 
     line.add(rotation, forKey: AnimKeys.lineRotation) 
     finishLoadingGroup.enter() 
    } 
    finishLoadingGroup.notify(queue: DispatchQueue.main) { 
     self.taskCompletion!(self) 
    } 

Смотрите ниже скриншот ошибок на Xcode:

Errors

+0

Какая ошибка при выполнении этого кода? Вы должны получить некоторые ошибки – paper1111

+0

Да, я просто добавил скриншот на мой оригинальный пост, сообщите мне, если это поможет. @ paper1111 – Alex7

+0

'DispatchQueue.main' должно быть чем-то вроде' dispatch_async (dispatch_get_main_queue()) ' – paper1111

ответ

1

Это должно работать для Swift 2.2 ... то я бы ожидать Xcode/вы могли бы справиться с любой 2.2 -> 2.3 изменения ...

// rotation for lines 
    let rotation = CABasicAnimation(keyPath: "transform") 
    rotation.toValue = NSValue(CATransform3D: CATransform3DIdentity) 
    rotation.duration = Constants.finishLoadingAnimDuration 
    rotation.delegate = self 
    assignContext(.LoadingFinishing, anim: rotation) 

    for line in lines { 
     rotation.fromValue = NSValue(CATransform3D: (line.presentationLayer() as! CAShapeLayer).transform) 
     line.addAnimation(rotation, forKey: "lineRotation") 
     dispatch_group_enter(finishLoadingGroup) 
    } 

    dispatch_group_notify(finishLoadingGroup, dispatch_get_main_queue()) { 
     // this may need fixing... 
     self.taskCompletion!(self) 
    } 
+0

* Пытались заставить его работать, но там до сих пор, кажется, ошибка при: * dispatch_group_enter (finishLoadingGroup) } dispatch_group_notify (finishLoadingGroup, dispatch_get_main_queue()) { – Alex7

+1

Вы изменили 'fileprivate let finishLoadingGroup = DispatchGroup()' на 'private let finishLoadingGroup = dispatch_group_create()'? До сих пор у вас есть репо вашего хода преобразования? – DonMag

+0

Спасибо за это! – Alex7