Sto provando a limitare l'ambito di una classe all'interno di una funzione. Questo sembra funzionare:L'utilizzo di proprietà @lazy nelle funzioni causa errori di compilazione
func foo() {
class MyClass {
var s = ""
}
}
posso creare istanze di MyClass all'interno della funzione foo().
Tuttavia, quando si tenta di aggiungere l'identificatore @lazy a una proprietà ...
func foo() {
class MyClass {
@lazy var s = ""
}
}
... Ottengo i seguenti errori di generazione:
- Global is external, but doesn't have external or weak linkage!
- invalid linkage type for function declaration
- LLVM ERROR: Broken module found, compilation aborted!
Nota: Se sposto la classe fuori dall'ambito della funzione, compila il codice:
class MyClass {
@lazy var s = ""
}
Perché questo non funziona, e come dovrebbe essere risolto questo errore? Se non può essere risolto, esiste un altro modo per utilizzare le proprietà @lazy all'interno delle funzioni?
Hai segnalato questo? https://bugreport.apple.com/ – aleclarson
Ho anche avuto alcuni problemi con lazy vars che causavano arresti anomali del compilatore; nel mio caso era legato alla conformità del protocollo. Hai bisogno di archiviare quel radar. : | – cmyr