Articles of swift2

Extensões de Protocolo Swift sobrescrevendo

Eu estou experimentando com extensões de protocolo Swift e encontrei este comportamento bastante confuso. Você poderia me ajudar como obter o resultado que eu quero? Veja os comentários nas últimas 4 linhas do código. (Você pode copiar e colá-lo no playground XCode7 se quiser). Obrigado!! //: Playground – noun: a place where people can play […]

Diferenças na syntax NSDateComponents?

Eu tenho trabalhado em um aplicativo de relógio no Swift e com o Xcode 6.3.2 o código a seguir é compilado e executado muito bem. // Get current time let date = NSDate() let calendar = NSCalendar.currentCalendar() let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitSecond | .CalendarUnitNanosecond, fromDate: date) let hour = components.hour % 12 […]

Captura do NSException no Swift

O código a seguir no Swift gera exceção NSInvalidArgumentException: task = NSTask() task.launchPath = “/SomeWrongPath” task.launch() Como posso pegar a exceção? Pelo que entendi, try / catch no Swift é para erros lançados dentro do Swift, não para o NSExceptions criado a partir de objects como o NSTask (que eu acho que está escrito no […]

Substituindo methods nas extensões Swift

Eu costumo colocar apenas as necessidades (propriedades armazenadas, inicializadores) em minhas definições de class e mover todo o resto para a sua própria extension , como uma extension por bloco lógico que eu iria agrupar com // MARK: também. Para uma subclass UIView, por exemplo, eu acabaria com uma extensão para material relacionado ao layout, […]

Sintaxe Swift do-try-catch

Eu tento entender uma nova coisa de manipulação de erros no swift 2. Aqui está o que eu fiz: Eu declarei primeiro um enum de erro: enum SandwichError: ErrorType { case NotMe case DoItYourself } E então eu declarei um método que gera um erro (não é uma exceção pessoal. É um erro). Aqui está […]

Usando NSUserDefaults em matrizes

Estou tentando usar o NSUserDefaults para salvar um array nos dados principais do meu aplicativo. Eu pensei que seria bom usar o NSUserDefaults, mas o problema é que, onde quer que eu coloque o código que cria o padrão, ele gera o erro SIGABRT. Aqui está o código que cria o padrão: let levelArrayDefault = […]

Instancetype de retorno em Swift

Estou tentando fazer essa extensão: extension UIViewController { class func initialize(storyboardName: String, storyboardId: String) -> Self { let storyboad = UIStoryboard(name: storyboardName, bundle: nil) let controller = storyboad.instantiateViewControllerWithIdentifier(storyboardId) as! Self return controller } } Mas eu recebo erro de compilation: erro: não é possível converter a expressão de retorno do tipo ‘UIViewController’ para retornar o […]

Swift: guarda vs se deixar

Eu tenho lido sobre Optionals no Swift, e tenho visto exemplos onde if let é usado para verificar se um Optional contém um valor, e caso isso seja feito – faça algo com o valor desembrulhado. No entanto, tenho visto que no Swift 2.0 o guard palavra-chave é usado principalmente. Gostaria de saber if let […]

Swift 2 – UnsafeMutablePointer para object

Se eu tiver um método como: func someMethod(contextPtr: UnsafeMutablePointer) Como obtenho o object do contextPtr ? func someMethod(contextPtr: UnsafeMutablePointer){ let object:MyObject = contextPtr.memory } dá: ‘Void’ não é conversível para ‘MyObject’ Qual é o molho secreto Mais detalhes: O que estou realmente fazendo aqui é configurar uma function de retorno de chamada global para o […]

.toInt () removido no Swift 2?

Eu estava trabalhando em um aplicativo que usava um campo de texto e o traduzia em um inteiro. Anteriormente meu código textField.text.toInt() trabalhado. Agora Swift declara isso como um erro e está me dizendo para fazer textField.text!.toInt() e ele diz que não há toInt() e tente usar Int() . Isso não funciona também. O que […]