NCMB의 Swift SDK를 사용하여 포인터 데이터 처리
포인터란?
포인터는 한 데이터와 다른 데이터를 일대일 관계로 연계시키는 것입니다. 개인 데이터에 있어서의 주소의 도도부현 마스터와 연계시키는 것 같은 이미지입니다.
데이터 형식은 다음과 같이 되어 있으며, 다른 일반적인 데이터 형식(문자열이나 숫자 등)과 비교하면 특수합니다.
{
"__type": "Pointer",
"className": "連携先のデータストアクラス名",
"objectId": "連携先のデータのユニークID"
}
이 형식에 따라 데이터를 저장하면 포인터를 처리할 수 있습니다.
이번 프로젝트
이번에는 언어가 Swift, 인터페이스가 SwiftUI, 수명주기가 SwiftUI App입니다.
SDK 설치
File 메뉴에서 Swift Packages > Add Package Dependency를 선택합니다.
나온 대화 상자에서 Swift SDK의 Git 리포지토리 URL을 입력합니다. GitHub 리포지토리에서 HTTPS로 검색할 수 있는 URL 또는 아래 URL이 될 수 있습니다.
https://github.com/NIFCLOUD-mbaas/ncmb_swift.git
버전은 최신 버전일 수 있습니다.
후에는 Finish 버튼을 누르면 완료됩니다.
초기화
이번에는 SwiftUI를 이용하고 있습니다. 라이프 사이클도 SwiftUI입니다.
먼저 SDK를 가져옵니다.
import SwiftUI
import NCMB
그런 다음
scenePhase
를 추가합니다.@main
struct forumApp: App {
// 追加
@Environment(\.scenePhase) private var scenePhase
다음은 body 에서
onChange
를 사용하여 초기화합니다.var body: some Scene {
WindowGroup {
ContentView()
}.onChange(of: scenePhase) { scene in
switch scene {
case .active:
// キーの設定
let applicationKey = "YOUR_APPLICATION_KEY"
let clientKey = "YOUR_CLIENT_KEY"
// 初期化
NCMB.initialize(applicationKey: applicationKey, clientKey: clientKey)
case .background: break
case .inactive: break
default: break
}
}
}
포인터 데이터 저장
이번은 게시판과 같은 스레드 클래스(Thread)에 몇개의 코멘트 클래스(Comment)가 붙는 형태로 합니다. 주석 클래스를 저장할 때 스레드 클래스의 데이터를 Dictionary 형식으로 정의합니다.
comment["thread"] = [
"objectId": (thread["objectId"] ?? "") as String,
"__type": "Pointer",
"className": "Thread"
]
comment.save()
포인터 데이터를 사용하여 검색
어느 thread에 첨부되는 코멘트를 일람으로 취득하고 싶은 경우, 검색 조건에 thread 클래스를 이용합니다. 이때도 포인터의 데이터형으로 지정하면 원하는 결과를 얻을 수 있습니다.
var query = NCMBQuery.getQuery(className: "Comment")
query
.where(field: "thread", equalTo: [
"objectId": (thread["objectId"] ?? "") as String,
"__type": "Pointer",
"className": "Thread"
])
let results = query.find()
요약
포인터 유형을 사용하면 데이터 간의 연결을 표현할 수 있습니다. 사실은 include 라고 하는 메소드를 준비해 코멘트 클래스로부터 thread 클래스를 포함해 취득할 수도 있습니다만, 아직 준비되어 있지 않습니다. 이것은 향후 버전 업에서 구현되어야합니다. 또, 포인터의 취급에 대해서도, 보다 간편해진다고 생각합니다.
현재의 Swift SDK로 포인터 데이터를 취급할 때는, 이쪽을 참고해 주세요.
mBaaS로 서버 개발 불필요! 니후쿠라 mobile backend
Reference
이 문제에 관하여(NCMB의 Swift SDK를 사용하여 포인터 데이터 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/goofmint/items/a2342aa61cf51ed4fd5a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)