클래스 이름에서 클래스를 인스턴스화해야합니다. 스위프트 3에서 제대로 작동했지만 스위프트 4로 전환 한 후에는 더 이상 작동하지 않습니다. 나는 NSClassFromString(_:)
을 "MyApp.MyClass"
과 "_TtC5MyApp7MyClass"
과 함께 사용해 보았지만 성공하지 못했습니다. 그리고 나는 또한 Bundle.main.classNamed(_:)
함수를 사용해 보았습니다. 심지어 @objc(MyBaseClass)
을 클래스 선언 위의 MyClass
위에 추가하여 Objective-C에 표시했습니다. MyClass
은 MyBaseClass
에서 파생됩니다.Swift 4에서 NSClassFromString을 사용할 수 없습니다.
이것이 작동하지 않는 이유를 알아낼 수 없습니다. 도와주세요. 미리 감사드립니다!
[mcve]를 표시하십시오. – Hamish
"클래스 이름에서 클래스를 인스턴스화해야합니다."그건 나쁜 냄새입니다. 유스 케이스를 보여줄 수 있습니까? 아마도 더 좋은 방법이있을 것입니다. – matt
내 앱은 plist에서 몇 가지 다른 속성과 함께 id 속성을 가진 몇 개의 레스토랑을 읽습니다. 개관 시간. 이 ID는 Restaurant 클래스에서 파생 된 동일한 이름의 클래스를 참조합니다. 각 클래스는 현재의 점심을 검색하기 위해 웹 스크래핑을 수행합니다. 나는 아마도 모든 어려운 일을하는 웹 서비스를 만드는 것이 더 나을 것이라는 것을 알고 있지만, 지금은이 솔루션을 사용하고 싶다. 그렇지 않으면 VPS를 지불해야 할 것입니다. –