Действительно ли PowerShell является хорошим обновлением для пакетного файла?

Использование Rob & amp; Q i - идеальные ответы, вот упрощенный код Swift, использующий ту же самую затухающую анимацию для .push и .pop:

extension YourViewController: UINavigationControllerDelegate {
    func navigationController(_ navigationController: UINavigationController,
                              animationControllerFor operation: UINavigationControllerOperation,
                              from fromVC: UIViewController,
                              to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {

        //INFO: use UINavigationControllerOperation.push or UINavigationControllerOperation.pop to detect the 'direction' of the navigation

        class FadeAnimation: NSObject, UIViewControllerAnimatedTransitioning {
            func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
                return 0.5
            }

            func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
                let toViewController = transitionContext.viewController(forKey: UITransitionContextViewControllerKey.to)
                if let vc = toViewController {
                    transitionContext.finalFrame(for: vc)
                    transitionContext.containerView.addSubview(vc.view)
                    vc.view.alpha = 0.0
                    UIView.animate(withDuration: self.transitionDuration(using: transitionContext),
                    animations: {
                        vc.view.alpha = 1.0
                    },
                    completion: { finished in
                        transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
                    })
                } else {
                    NSLog("Oops! Something went wrong! 'ToView' controller is nill")
                }
            }
        }

        return FadeAnimation()
    }
}

Не забудьте указать делегата в методе viewDidLoad () в вашем представлении ViewView: g1]

override func viewDidLoad() {
    //...
    self.navigationController?.delegate = self
    //...
}
22
задан Tom Kidd 23 January 2009 в 22:23
поделиться

8 ответов

Если у Вас есть рабочее решение, то Вы не делаете потребность для движения в powershell. Однако если бы Вы планируете внести изменения, или улучшить процесс тогда я настоятельно рекомендовал бы powershell как способ пойти. Powershell может получить доступ к.Net блокам... главным образом. Некоторые блоки структурированы способом, который делает его более трудным, чем другие.

можно проверить здесь для некоторых ресурсов, если Вы решаете посмотреть на powershell.

15
ответ дан 29 November 2019 в 05:01
поделиться

Первоначально я был действительно взволнован PowerShell. Наконец мощная собственная оболочка в Windows. Однако я быстро понял, что по сравнению с Вашей любимой оболочкой Unix PowerShell является просто слишком подробным. Даже выполнение простого материала берет слишком много ввода по сравнению с тем, что можно сделать с ударом и инструментами GNU для Win32.

мне нравится идея, что оболочка знает о различных типах, но если я должен сделать так много дополнительной работы, я предпочитаю просто получать необходимые данные с различными потоковыми редакторами Unix.

РЕДАКТИРОВАНИЕ : у Меня просто был другой взгляд на PowerShell, и я должен признать, что он действительно имеет некоторые действительно полезные функции, которые не доступны для традиционных инструментов стиля Unix.

Для одного PowerShell владеет всеми командами, что означает, что это может обеспечить намного больше когерентного набора функций. Параметры рассматривают однородно, можно искать команды, параметры и т.д с помощью подстановочных знаков, который действительно полезен.

вторая замечательная особенность - то, что PowerShell позволяет Вам перечислить источники, которые обычно не доступны потоковым редакторам, таким как реестр Windows, хранилище сертификатов и т.д. Конечно, у Вас могут быть инструменты, который делает это для Вас и представляет его как текст, но подход PowerShell является просто действительно изящным IMO.

8
ответ дан 29 November 2019 в 05:01
поделиться

Смотрите на Расширения Сообщества PowerShell (PSCX), ее СВОБОДНОЕ, и он имеет Zip cmdlets:

Zip Записи

Запись-BZip2

Запись-GZip

http://www.codeplex.com/PowerShellCX

4
ответ дан 29 November 2019 в 05:01
поделиться

Необходимо наблюдать этот презентация/обсуждение с Jeffrey Snover , создатель PowerShell и архитектор. Если Вы не будете поражены техническими деталями (много, "ничего себе", моментов, которые будут иметься), то Вы будете поражены энтузиазмом Jeffrey :). После того как Вы получаете основы, легко быть очень продуктивным с PowerShell.

3
ответ дан 29 November 2019 в 05:01
поделиться

Ответ - ДА - PowerShell может использовать блоки.NET. Существует немного забавного бизнеса, вовлеченного в v1, если необходимо обеспечить электричеством делегатов, и v2 делает это намного более чистым.

Просто вызов LoadFile / LoadAssembly для получения соответствующих библиотек в памяти и далеко Вы идете

[Reflection.Assembly]::LoadFile('/path/to/sharpzip.dll')
$zip = new-object ICSharpCode.SharpZipLib.Zip.FastZip
$zip.CreateZip('C:\Sample.zip', 'C:\BuildFiles\', 'true', '^au')
# note - I didn't actually test this code 
# I don't have SharpZip downloaded - just read their reference.

Также примечание, что Расширения Сообщества PowerShell поддерживают различные методы сжатия как zip записи.

2
ответ дан 29 November 2019 в 05:01
поделиться

Я попытался заменить один из длинных пакетных файлов сборки, которые я использую с оболочкой питания. Я нашел его болью: по крайней мере, в то время документация сфокусировалась на забавной формулировке и какие прохладные, жемчужные вещи Вы можете сделать с ним, но испытали недостаток в "добирающихся простых вещах в сделанной" категории. Я получил его работа, но обработка ошибок была к шаткому.

YMMV, попробуйте powershell, Вы могли бы наслаждаться им. Но попробуйте его прежде, чем обновить Ваши пакеты сборки.

Мое решение: используйте консольное приложение C#. У меня есть серьезный вход, обработка исключений, может использовать мои служебные функции, и если что-то не работает, у меня есть реальный отладчик. Это - первое решение I как для изменения.

2
ответ дан 29 November 2019 в 05:01
поделиться

Я не уверен в powershell, но я мог бы рекомендовать использовать что-то как IronPython (если Вы хотите иметь доступ к библиотекам.NET), или простой Python? Вы получаете полноценный язык программирования с очень немногими ограничениями.

1
ответ дан 29 November 2019 в 05:01
поделиться

С одной стороны, если это работает, просто оставьте его. Но это кажется, что это - что-то, к чему Вы будете добавлять со временем, и конечно Ваш возможный преемник/коллега, который должен отредактировать пакетный файл, должен будет также понять это. Если Вы происхождения программирования затем, можно найти, что питание Powershell делает сценарий намного короче и легче читать/поддерживать (например, даже просто имея полный если операторы и для/циклы с условием продолжения). С другой стороны, если Вы не чрезмерно знакомы с программированием, много людей находит Powershell немного пугающим на первый взгляд.

Относительно части.NET, Powershell создается сверху.NET так да, можно получить доступ к блокам.NET (но необходимо всегда видеть, существует ли cmdlet доступное первое).

я рекомендовал бы книгу, названную "Поваренная книга Powershell" Lee Holmes, опубликованного O'Reilly. Это предоставляет "рецепты", которые можно использовать для общих задач; это, вероятно, ускорит Ваше время для реализации сценария, и он будет преподавать Вам Powershell по пути.

1
ответ дан 29 November 2019 в 05:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: