Articles of swift2

Sovrascrittura delle estensioni del protocollo Swift

Sto facendo esperimenti con le estensioni del protocollo Swift e ho trovato questo comportamento abbastanza confuso. Potresti aiutarmi a ottenere il risultato che voglio? Vedi i commenti sulle ultime 4 righe del codice. (Puoi copiare incollalo su XCode7 se vuoi). Grazie!! //: Playground – noun: a place where people can play import UIKit protocol Color […]

Gli operatori “++” e “-” sono stati deprecati Xcode 7.3

Sto guardando le note di Xcode 7.3 e noto questo problema. Gli operatori ++ e – sono stati deprecati Qualcuno potrebbe spiegare perché è deprecato? E ho ragione che nella nuova versione di Xcode ora si userà invece di ++ questo x += 1 ; Esempio: for var index = 0; index < 3; index […]

Differenze nella syntax NSDateComponents?

Ho lavorato a un’app di clock in Swift e con Xcode 6.3.2 il codice seguente è stato creato e funziona perfettamente. // 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 let minute = components.minute […]

Cattura NSException in Swift

Il seguente codice in Swift solleva l’eccezione NSInvalidArgumentException: task = NSTask() task.launchPath = “/SomeWrongPath” task.launch() Come posso rilevare l’eccezione? Come ho capito, prova / catch in Swift è per gli errori lanciati all’interno di Swift, non per NSExceptions generato da oggetti come NSTask (che immagino sia scritto in ObjC). Sono nuovo di Swift quindi potrebbe […]

Sovrascrittura dei metodi nelle estensioni Swift

Io tendo a mettere solo le necessità (proprietà memorizzate, inizializzatori) nelle mie definizioni di class e spostare tutto il resto nella loro propria extension , un po ‘come extension per blocco logico che vorrei raggruppare con // MARK: pure. Ad esempio, per una sottoclass di UIView, mi ritroverei con un’estensione per materiale relativo al layout, […]

Sintassi di cattura rapida

Cerco di capire la nuova cosa di gestione degli errori in swift 2. Ecco cosa ho fatto: ho prima dichiarato un errore enum: enum SandwichError: ErrorType { case NotMe case DoItYourself } E poi ho dichiarato un metodo che genera un errore (non un’eccezione gente. È un errore). Ecco questo metodo: func makeMeSandwich(names: [String: String]) […]

Uso di NSUserDefaults sugli array

Sto cercando di utilizzare NSUserDefaults per salvare un array nei dati principali della mia app. Ho pensato che sarebbe stato utile usare NSUserDefaults ma il problema è che ovunque inserisco il codice che crea il valore predefinito, genera l’errore SIGABRT. Ecco il codice che crea il valore predefinito: let levelArrayDefault = NSUserDefaults.standardUserDefaults() levelArrayDefault.setValue(levelsArray, forKey: “levelsArray”) […]

Restituisci instancetype in Swift

Sto provando a fare questa estensione: 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 } } Ma ottengo l’errore di compilazione: errore: imansible convertire l’espressione di ritorno di tipo ‘UIViewController’ per restituire il tipo ‘Self’ È […]

Swift: guardia vs se let

Ho letto su Optionals in Swift, e ho visto degli esempi in cui if let viene usato per verificare se un Optional mantiene un valore, e nel caso lo faccia – fai qualcosa con il valore unwrapped. Tuttavia, ho visto che in Swift 2.0 la parola chiave guard è usata principalmente. Mi chiedo if let […]

Swift 2 – UnsafeMutablePointer per object

Se ho un metodo come: func someMethod(contextPtr: UnsafeMutablePointer) come ottengo l’object dal contextPtr ? func someMethod(contextPtr: UnsafeMutablePointer){ let object:MyObject = contextPtr.memory } dà: ‘Void’ non è convertibile in ‘MyObject’ Qual è la salsa segreta Più dettaglio: Quello che sto facendo qui è la creazione di una funzione di callback globale per SCNetworkReachability : func callback(reachability:SCNetworkReachability, […]