Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Если внутри замыкания НЕ используется вызов self, то такого подвоха НЕ возникает.
var me: ViewController = self
whatToDo = { println(me.theString) }
func addJoeyTo(inout persons:[Person]) { // не inout var, а просто var
persons.append(Person(name: "Joey", age: 25))
}
...
addJoeyTo( &programmers ) // нужно использовать &
private let _sharedInstance = Singleton()
class Singleton {
class var sharedInstance : Singleton {
return _sharedInstance
}
}
private let _sharedInstance: Singleton = {
let singleton = Singleton()
singleton.property = ...
return singleton
}()
class Singleton {
class var sharedInstance : Singleton {
return _sharedInstance
}
}
class Test {
typealias T = (()->Void)
func test(foo:T) {}
let foo1:T = { }
init () {
let foo2:T = {}
test(foo1)
test(foo2)
}
}
init() {
let foo2:T = { print("Hello") }
test(foo:T) { foo() }
}
give() {
return { print("Hello") }
}
init() {
let foo = give()
foo()
}
Array, Dictionary и Struct по умолчанию немутабельные типы, никогда не передающиеся по ссылке
Пять ловушек для начинающего свифтера