2016-08-01 4 views
1

런타임에만 결정되는 클래스로 객체를 캐스팅하는 방법을 알고 싶습니다. 런타임에 결정된 클래스로 캐스팅

는 예를 들어 보겠습니다 :
let xClasses = [ClassA.self, ClassB.self] 
let xClass = xClasses[indexPath.row] 
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! xClass 

그래서 기본적으로,이 클래스의 배열을 가지고 있고 (있는 UITableViewCell의 예에서, 객체)을 주조 런타임에 그들 중 하나를 선택하고 싶습니다.

(위 코드는 작동하지 않습니다.) 어떻게해야합니까?

참고 : 예를 들어이 코드를 사용했지만 제 질문은 UITableViewCell 일뿐입니다. 감사합니다. .

+0

그 다음 질문은 무엇입니까? –

+0

@ ÖzgürErsil 내가 말했듯이 : 어떻게 런타임에 결정되는 클래스로 캐스트 할 수 있습니다. (위의 코드와 같은 상황) – Erfan

답변

1

나는 내 프로젝트에서 이와 비슷한 것을 가지고있다. 스위치 케이스를 사용하여 처리합니다. 다음과 같이 입력하십시오.

대부분 default:이 필요합니다.

런타임에 확인할 유형 정보는 실제로 Existentials이라고합니다. 이 블로그 post에서 더 많은 정보를 읽을 수 있습니다. swift2에서는 스위치 케이스가 필요하지 않으면 프로토콜을 사용해야합니다.

+0

감사. 기사를 훑어 보았다. (나중에 자세히 읽을 것입니다.) – Erfan

+0

위와 같은 상황에서 어떻게 프로토콜을 사용합니까? (나는 스위치를 회피책으로 사용하고 있는데, 실제로 스위치가 4-5 개이기 때문에 그것을 좋아하지 않는다) – Erfan

관련 문제