2016-10-05 8 views
4

Swift 3으로 작성된 iOS 앱에 생성 된 AWS API Gateway SDK를 추가하려고합니다. AWS에서 생성 된 코드에는 Swift 3에서 컴파일되지 않는 많은 것들이 포함되어 있지만, 대부분의 그들. 오류 중 하나가 나를 혼란스럽게 만들었습니다.Swift 3에서 AWSAPIGatewayClient 구성을 설정할 수 없습니까?

AWS 라이브러리에서 (컴파일) AWSAPIGatewayClient 클래스는 다음과 같습니다

open class AWSAPIGatewayClient : NSObject { 
    open var configuration: AWSServiceConfiguration! { get } 
    open var apiKey: String! 
} 

그리고 생성 된 하위 클래스는 init 함수가 있습니다

init(configuration: AWSServiceConfiguration) { 
    super.init() 

    self.configuration = configuration 

    ... 
} 

컴파일러는 자연적으로 불만을 그 구성 등록 은 (는) get-only입니다 :

AWSMyServiceClient.swift:127:25: Cannot assign to property: 'configuration' is a get-only property 

나는 무엇인가를 놓치고 있습니까? 또는 이것이 어떻게 가능할 수 있습니까? 나는 같은 문제가있는 다른 사람을 찾을 수 없었기 때문에 특정 코드에 문제가 있다고 의심하게됩니다.

+1

나는 항상 AWS API 게이트웨이 OBJ-C는 스위프트 2.2 프로젝트에서 생성 된 코드를 사용했다. 나는 프로젝트를 Swift 3으로 변환했으며 잘 작동한다 (여전히 obj-c로 생성 된 코드 사용). 나는 지금 그들이 신속한 코드를 제공한다는 것을 알아 차렸다. obj-c 코드를 생성 된 Swift로 대체하려고했지만 컴파일 오류가 많이 발생했습니다. 컴파일 된 오류를 생성 된 코드에서 해결할 방법이 없습니다. 이것은 즉시 사용 가능해야합니다. 생성 된 Swift에 대한 설명서, 버전 소개 및 사용 방법을 찾을 수 없습니다. 지금 나는 obj-c를 고수 할 것입니다. –

+0

감사합니다. 이것은 매우 유용한 정보입니다. 다음 번에이 방법을 시도해 보겠습니다. 코드를 업데이트 할 때마다 코드를 변경해야하는 경우 코드 생성의 장점 중 상당 부분이 손실됩니다. –

답변

3

Swift 용 API 게이트웨이는 앱의 브리징 헤더 (Bridging_Header.h에 표시됨)를 통해 가져온 패키지에 AWSApiGatewayBridge.h이라는 파일을 제공합니다.

목표 c 브리징 헤더를 통해 프로젝트에 AWSApiGatewayBridge.h을 가져 오지 않으면 생성 된 SDK가 작동하지 않습니다.

덕분에, 로한

+0

브리징 헤더 파일에'AWSApiGatewayBridge.h'를 포함 시켰습니다.하지만 이와 비슷한 것은 생성 된 클라이언트에 대해 많은 것을 설명해 줄 것입니다. 또 다른 예로 컴파일러'dispatch_once_t'에 따라 생성 된 클라이언트의'private static var token : dispatch_once_t = 0' 라인이 Swift에서 사용 가능하지 않습니다. 이것이 바로 Swift 3 것입니까? 아니면 생성 된 코드가 컴파일되지 않는 이유에 대한 단서가 될 수 있습니까? –

+0

그것은 Swift 3 일 것입니다. 생성 된 SDK는 Swift 2.3에서 올바르게 작동합니다. 그러나 단지 읽을 수있는 구성 객체와 관련된 문제는 브리징 헤더로 해결해야합니다. dispatch_once_t 문제를 해결하기위한 대체 방법을 사용할 수 있으며 SDK가 정상적으로 작동해야합니다. –

+0

빌드 설정에서 브리징 헤더 파일을 제거하고 추가하고 프로젝트를 정리 및 빌드했지만 성공하지 못했습니다. 그런 다음 코드를 제대로 조작하지 않아서 왼쪽 패널에서 빌드 오류가 사라지기 시작했습니다. 약간은 남아 있었지만 구성 문제는 사라졌습니다. 나는 왜 변화가 즉각적이지 않은지 모르지만 당신이 옳았다는 것에 매우 기쁩니다. 감사! –

관련 문제