iOS용 Places SDK 버전 4.0.0부터 GMSPlaceField
유형은 이제 NS_OPTIONS
매크로를 사용합니다. SDK 버전 3.x에는 GMSPlaceField
가 있습니다.
NS_ENUM
로 제공되고 여전히 지원됩니다.
Objective-C를 사용하는 경우: 아무런 영향도 없습니다. 계속 진행할 수 있음 이전과 같이
GMSPlaceField
를 사용합니다.Swift를 사용하는 경우:
GMSPlaceField(rawValue:)
문법을 생성자로 사용하며, 이전 버전에서는GMSPlaceField?
(선택사항)로 반환됩니다. 버전 4.0.0 이상 선택사항이 아��GMSPlaceField
값을 반환합니다. 수행될 수 있는 선택사항에 대한 작업(예: 조건부 검사 또는 강제 래핑 해제)을 실행하면 있습니다 또한 이제 배열 문법을 사용하여GMSPlaceField
를 결합할 수 있습니다.
코드 마이그레이션
특정 조건부 래핑 해제 또는 강제 래핑 해제 구문이 Swift에서 중단됩니다.
다음 예는 이러한 문제를 해결하는 방법 및
GMSPlaceField
을 선언하는 배열 문법:
조건부 래핑 해제
다음 예의 문은 if
를 사용하여
조건부 래핑 해제가 필요한 GMSPlaceField
배열 이렇게 하면
('조건부 바인딩의 초기화 프로그램에는 선택적
GMSPlaceField
"이 아닌 유형).
// Before.
if let field = GMSPlaceField(
rawValue: GMSPlaceField.name.rawValue | GMSPlaceField.photos.rawValue
) { // Do something }
이 문제를 해결하려면 다음과 같이 if
문을 삭제하세요.
// After.
let field = GMSPlaceField(
rawValue: GMSPlaceField.name.rawValue | GMSPlaceField.photos.rawValue
)
// Do something
다음과 같이 배열 구문을 사용할 수도 있습니다.
let field = [GMSPlaceField.name, GMSPlaceField.photos]
// or
let field: GMSPlaceField = [.name, .photos]
강제 래핑 해제
다음 예의 문은 GMSPlaceField
를
선택적 유형입니다. 이렇게 하면 컴파일러 오류('포스 해제 값을 강제로 해제할 수 없음)가 발생합니다.
")를 사용합니다.
// Before.
let field = GMSPlaceField(
rawValue: GMSPlaceField.name.rawValue | GMSPlaceField.photos.rawValue
)!
이 문제를 해결하려면 다음과 같이 GMSPlaceField
를 선택적 유형으로 사용하세요.
// After.
let field = GMSPlaceField(
rawValue: GMSPlaceField.name.rawValue | GMSPlaceField.photos.rawValue
)
다음과 같이 배열 구문을 사용할 수도 있습니다.
let field = [GMSPlaceField.name, GMSPlaceField.photos]
// or
let field: GMSPlaceField = [.name, .photos]