«swift-protocols» 태그된 질문

Swift 언어에 특정한 프로토콜

6
'pure'Swift (@objc없이)에서 약한 프로토콜 참조를 만드는 방법
weaka protocol로 선언 하지 않으면 Swift에서 참조가 작동하지 않는 것 같습니다 @objc. 순수한 Swift 앱에서는 원하지 않습니다. 이 코드는 컴파일 오류를 발생시킵니다 ( weak클래스 이외 유형에는 적용 할 수 없음 MyClassDelegate). class MyClass { weak var delegate: MyClassDelegate? } protocol MyClassDelegate { } 프로토콜 앞에 접두사를 붙이면 @objc작동합니다. 질문 : …


7
신속하게 배열 유형 및 기능 매개 변수로 프로토콜 사용
특정 프로토콜에 맞는 객체를 저장할 수있는 클래스를 만들고 싶습니다. 개체는 형식화 된 배열에 저장해야합니다. Swift 문서에 따르면 프로토콜은 유형으로 사용할 수 있습니다. 유형이기 때문에 다음을 포함하여 다른 유형이 허용되는 여러 위치에서 프로토콜을 사용할 수 있습니다. 함수, 메소드 또는 이니셜 라이저의 매개 변수 유형 또는 리턴 유형 상수, 변수 또는 속성의 …

3
프로토콜이 자체 준수하지 않습니까?
이 Swift 코드는 왜 컴파일되지 않습니까? protocol P { } struct S: P { } let arr:[P] = [ S() ] extension Array where Element : P { func test<T>() -> [T] { return [] } } let result : [S] = arr.test() 컴파일러는 "유형 P이 프로토콜을 따르지 않습니다 "라고 …

2
"프로토콜…은 자체 또는 관련 유형 요구 사항이 있기 때문에 일반 제약으로 만 사용할 수 있습니다."는 무엇을 의미합니까?
Swift에서 사용자 정의 프로토콜을 기반으로 하는 Dictionary (실제로 HashSet ) 를 만들려고 하는데 제목에 오류가 있습니다. 프로토콜 'myProtocol'은 자체 또는 관련 유형 요구 사항이 있기 때문에 일반 제약 조건으로 만 사용할 수 있습니다. 머리도 꼬리도 만들 수 없습니다. protocol Observing: Hashable { } var observers = HashSet<Observing>()

3
'@objc'가 아닌 방법은 '@objc'프로토콜의 선택적 요구 사항을 충족하지 않습니다.
개요 : Objective-C 옵션 기능 중 하나의 기본 구현을 제공하는 프로토콜 P1이 있습니다. 선택적 기능의 기본 구현을 제공하면 경고가 있습니다. 컴파일러 경고 : Non-'@objc' method 'presentationController(_:viewControllerForAdaptivePresentationStyle:)' does not satisfy optional requirement of '@objc' protocol 'UIAdaptivePresentationControllerDelegate' 버전: 스위프트 : 3 Xcode : 8 (공개 릴리스) 시도한 횟수 : 추가를 시도 @objc했지만 …

5
프로토콜은 Self 또는 associatedType 요구 사항이 있으므로 일반 제약 조건으로 만 사용할 수 있습니다.
프로토콜 RequestType이 있고 아래와 같이 associatedType Model이 있습니다. public protocol RequestType: class { associatedtype Model var path: String { get set } } public extension RequestType { public func executeRequest(completionHandler: Result<Model, NSError> -> Void) { request.response(rootKeyPath: rootKeyPath) { [weak self] (response: Response<Model, NSError>) -> Void in completionHandler(response.result) guard let weakSelf …

5
Swift에서 하나 이상의 프로토콜을 준수하는 특정 유형의 변수를 어떻게 선언 할 수 있습니까?
Swift에서는 다음과 같이 선언하여 변수의 유형을 명시 적으로 설정할 수 있습니다. var object: TYPE_NAME 한 단계 더 나아가 여러 프로토콜을 준수하는 변수를 protocol선언 하려면 선언적을 사용할 수 있습니다 . var object: protocol<ProtocolOne,ProtocolTwo>//etc 하나 이상의 프로토콜을 따르고 특정 기본 클래스 유형 인 객체를 선언하려면 어떻게해야합니까? Objective-C는 다음과 같습니다. NSSomething<ABCProtocolOne,ABCProtocolTwo> * object …

15
열거 형이 Swift의 프로토콜을 준수하도록 만드는 방법은 무엇입니까?
Swift 문서에 따르면 클래스 , 구조체 및 열거 형 은 모두 프로토콜을 준수 할 수 있으며 모두 준수하는 지점에 도달 할 수 있습니다. 그러나 열거 형 이 클래스 및 구조체 예제 처럼 작동하도록 할 수 없습니다 . protocol ExampleProtocol { var simpleDescription: String { get set } mutating func adjust() …

4
"치명적인 오류 : Objective-C에서 어레이를 연결할 수 없습니다."— 당신은 왜 시도하고 있습니까, Swift?
Swift 프로토콜을 선언했습니다. protocol Option { var name: String { get } } 이 프로토콜의 여러 구현 (일부 클래스, 일부 열거 형)을 선언합니다. 다음과 같이 선언 된 속성이있는 뷰 컨트롤러가 있습니다. var options: [Option] = [] 이 속성을 Option다른 VC에서 프로토콜 을 구현하는 개체 배열로 설정하려고 prepareForSegue하면 런타임 오류가 발생합니다. …


9
Self를 반환하는 프로토콜 func
개체의 복사본을 반환하는 프로토콜 P가 있습니다. protocol P { func copy() -> Self } P를 구현하는 클래스 C : class C : P { func copy() -> Self { return C() } } 그러나 Self다음 오류가 발생 하면 반환 값을 입력했는지 여부 : 'C'유형의 반환 식을 'Self'반환 유형으로 변환 할 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.