Не похоже, что бы вы поняли. Блок - это объект! Когда блок создается, он захватывает примитивы, которые в нем используются через замыкания, по значению.
class One : NSObject {
func foo() {
NSLog("foo")
}
}
var cls1 : AnyClass = NSClassFromString("One")
var inst1:One = cls1.alloc() as One
inst1.foo()
var cls2 : AnyClass = One.superclass()
var inst2:One = cls2.alloc() as One
inst2.foo()