이것이 가능한지 확실하지 않지만 나는 라고 생각합니다. 이전에 본 적이 있습니다.신속한 일반 <T>의 속성 및 메서드에 액세스
내 앱 전체에서 양식 객체에 대한 유효성 검사를 일부 수행하고 있으며이를 재사용 할 수있는 중심적인 방법을 원합니다. 나는 함께 온 다음
class RGOValidatedObject<T> {
var validationPredicate: ((RGOValidatedObject<T>) -> Bool)?
var isValid: Bool {
return true
}
}
는 내가 직접 서브 클래스보다는 RGOValidatedObject
에 속성을 추가하는 것처럼 T.의 값을 반환하는 속성과 T의 방법으로 액세스 할 수있게하려면 다음 사항을 고려
RGOValidatedObject<String>().substringToIndex(1)
이 난 그냥
이 가능 T.
서브 클래스 거의 것처럼, 나는RGOValidatedObject
에 액세스 T의 속성과 메소드 무슨 뜻입니까? 그렇다면 어떻게해야합니까? 나는 스위프트 제네릭의 개념에 익숙하지 않지만 그것들의 모양을 좋아한다.
'RGOValidatedObject() .substringToIndex (1)'의 결과는 무엇을 기대합니까? –
배열 인덱스가 범위를 벗어나는 예외를 기대하지만, 그다지 요점은 아닙니다. 컴파일러가'RGOValidatedObject'의'String' 메쏘드를 인식 할 것인가? –
'T' 타입의 값 홀더 속성을 순서대로 추가해야하는 것처럼 보입니다. 'Optional'enum 구조체와 매우 유사한 것을 받게 될 것입니다. 아마도'Optional' 타입 구현 전달 방법에 대한 지식이 문제를 해결하는 데 도움이 될 수 있습니다. 신속한 소스 코드를 파헤 치면 연구하려고 할 수 있습니다. –