IOS 클라이언트 SDK를 사용하여 Swift 애플리케이션 쓰기
IOS 클라이언트 SDK와 Swift 및 Objective-C 프로그래밍 언어를 사용하여 iOS 모바일 애플리케이션을 개발합니다.
Xcode IDE 사용:
- 연결 헤더 파일을 추가합니다.
- SDK 헤더 파일 및 라이브러리를 추가합니다.
- Objective-C 링커 플래그를 추가합니다.
- Xcode의 기타 iOS 프로젝트와 마찬가지로 iOS 클라이언트 SDK를 사용하여 애플리케이션을 컴파일하고 링크합니다. Swift와 함께 SDK를 사용하면 Objective-C를 사용하는 것과 동일한 종속성이 모두 제공됩니다.
Bridging 헤더 파일 추가
Swift 앱이 호출하는 Objective-C 공용 클래스의 헤더 파일을 가져오려면 브리징 헤더 파일을 사용해야 합니다. Oracle Mobile Hub 클라이언트 SDK의 사용 가능한 모든 공용 클래스는 SDK의 include
폴더에서 찾을 수 있습니다.
Xcode에서 연결 헤더 파일을 생성하려면 다음과 같이 하십시오.
Swift 애플리케이션에 SDK 헤더 및 라이브러리 추가
추가하는 헤더 및 라이브러리 집합은 앱에 포함하는 클라이언트 SDK의 정적 라이브러리에 따라 다릅니다. 최소한 libOMCCore.a
및 libIDMMobileSDK.a
라이브러리가 필요합니다.
Swift 앱에서 SDK 객체 사용
Objective-C에서 Swift로 변환하는 규칙은 Apple 설명서에 설명되어 있습니다. 이러한 두 언어의 관계와 사용에 대한 일반적인 정보는 에서 확인해 보십시오.
다음을 확인하십시오.
-
Xcode에서 코드 편집기의 자동 완성 기능은 일반적으로 매핑을 얻을 만큼 충분히 작동합니다. 하지만 첫번째 매개변수에 레이블을 추가할 수 없는 경우도 있습니다. 자동 완성을 사용하는 경우 이에 대해 알아봅니다.
-
Objective-C
init
메소드가 Swift에 도달하면 네이티브 Swift 이니셜라이저 구문을 사용합니다. 즉,init
접두어가 분리되어 메소드가 이니셜라이저임을 나타내는 키워드가 됩니다. 자세한 내용은 Apple 설명서를 참조하십시오. -
!
및?
선택적 매개변수 사양과 선언의 모든 매개변수 유형에 대해 특별한 주의가 제공됩니다. 선택적 유형은 Objective-C를 Swift에 매핑할 때 컴파일러에 의해 자동으로 결정됩니다.
Swift 및 Oracle Mobile Hub 클라이언트 SDK를 사용하여 Xcode 시뮬레이터와 실제 장치에서 모바일 앱을 컴파일하고 실행할 수 있어야 합니다.
다음은 Oracle Mobile Hub 클라이언트 SDK를 사용하는 Objective-C 및 해당하는 Swift 코드의 예입니다.
푸시 통지에 대한 장치 토큰을 등록하려면 다음 Objective-C 코드입니다.
// Get notifications sdk object
OMCNotifications* notifications = [[appDelegate myMobileBackend] notifications];
// Register device token with MCS server using notifications sdk
[notifications registerForNotifications:[appDelegate getDeviceTokenData]
onSuccess:^(NSHTTPURLResponse *response) {
NSLog(@"Device token registered successfully on MCS server");
dispatch_async(dispatch_get_main_queue(), ^{
// Update UI here
}) ;
}
onError:^(NSError *error) {
NSLog(@"Error: %@", error.localizedDescription);
dispatch_async(dispatch_get_main_queue(), ^{
// Update UI here
}) ;
}];
swift에서 다음과 같은 방식으로 작성할 수 있습니다.
@IBAction func registerForPushNotifications() {
// Get notifications sdk object
let notifications = appDelegate.myMobileBackend().notifications();
// Get device token first, and assign it here
let deviceTokenData:NSData! = nil;
// Register device token with MCS server using notifications sdk
notifications.registerForNotifications(deviceTokenData, onSuccess: { (response:NSHTTPURLResponse!) in
NSLog("Device token registered successfully on MCS server");
dispatch_async(dispatch_get_main_queue()) {
// Update UI here
}
}) { (error) in
print("Error: %@", error.localizedDescription);
};
}