는 스위프트에서 당신은 쉽게하지만, 내가 지금처럼 반원 동일한 작업을 수행하는 방법을 알아낼 수 없습니다 ...과 같이,C#의 'nameof()'문과 동일한 Swift가 있습니까?
enum Foo
{
case laa1
case laa2
case laa3
}
let varHoldingTheStringLaa1 = String(Foo.laa1) // Returns the string 'laa1'
을 열거의 경우 이름의 캐릭터 라인 표현을 얻을 수 있습니다. ... C#에서
class Foo
{
var laa1:String = ""
var laa2:String = ""
var laa3:String = ""
}
// None of these work...
let varHoldingTheStringLaa1 = String(laa1) // Returns the value stored in laa1, not 'laa1'
let varHoldingTheStringLaa1 = String(Foo.laa1) // Won't even compile
, 그것은 nameof
덕분에 쉽습니다. 이처럼 문자열 표현을 원하는 멤버를 전달하기 만하면됩니다 ...
let varHoldingTheStringLaa1 = nameof(laa1) // Returns the string 'laa1'
Swift와 동일한 기능이 있습니까?
이미 속성의 이름을 알고있는 경우 'let varHoldingTheStringLaa1 = "laa1"' –
Swift의 반사 기능은 진행 중이며 내가 읽은 바로는 그 진행의 끝점이 무엇인지 명확하지 않습니다. 관심이 있으시면, 지난 봄, 신속한 진화 목록에 대한 최근 토론이 있습니다. 그러나 현재는'nameof()'와 비교할만한 연산이 없다. –
다른 코드는 hard.coding 문자열을 피하려고하기 때문에 코드화되어 있습니다. 나는 리팩토링 지원을 원한다. 바라건대 Swift는 C#에서 특히 반사 형 SDK를 사용하여이 기능을 유용하게 사용할 수 있습니다. – MarqueIV