2014-09-03 4 views

답변

9

이것은 빠른 직접 번역 질문에서 기반 코드 아래에 대한 엑스 코드 신속에있는 UIView의 클래스의 설명을 얻으려면 .

if NSStringFromClass(view.classForCoder) == "UITableViewIndex" 
{ 

} 
+0

많은 감사합니다. Allan. –

2

제 생각에, isEqualToSTring은 귀하의 경우에 최선의 선택이 아닙니다. 더 나은,

if view.isKindOfClass(UITableViewIndex) { 
    ... 
} 

을 또는 : 나는이 더 나은 옵션을 생각할 수

if let tableView = view as? UITableViewIndex { 
    ... //Here you can use a tableView instead of view. 
} 

문자열 비교가 빠른 작동하지 않습니다. isKindOfClass/타입 캐스팅이 빨라야합니다. 그리고 문자열의 오타에 대해 걱정할 필요가 없습니다. 그리고 코드를 리팩토링하고 클래스 이름을 바꾸려면 모든 문자열을 변경하지 않아도됩니다.

UPDATE : 니콜라이 RUHE가 언급 한 바와 같이, UITableViewIndex가 (처음에 나는 그것이 사용자 정의 서브 클래스 인 생각) 개인이기 때문에,이 기술은이 경우 사용할 수 없습니다. 대신 앨런의 대답을 확인하십시오.

+0

'UITableViewIndex'는 비공개입니다. –

+0

@NikolaiRuhe 네, 네가 맞아. 나는'UITableViewIndex'가 OP의 커스텀'UITableView' 서브 클래스라고 생각했습니다. – FreeNickname

+2

이 기술은 OP의 경우에는 적용 할 수 없지만 다른 사람에게 유용 할 수 있으므로 대답을 남겨 두겠습니다. – FreeNickname

관련 문제