NCMB의 Swift SDK를 사용하고 SwiftUI에서 문자를 얻을 수없는 문제를 해결합니다.

1855 단어 SwiftUISwiftNCMB
NCMB(니후쿠라 mobile backend)의 Swift SDK를 사용하면 SwiftUI 앱 등에서의 개발을 매우 쉽게 할 수 있게 됩니다.

그러나 데이터스토어(데이터베이스)의 객체를 사용하고 있을 때 직접 데이터를 지정하면 표시할 수 없다는 문제가 발생했습니다.

현상



예를 들어, 다음과 같이 텍스트를 표시하려고했습니다. 데이터스토어에서는 캐릭터 라인 이외의 정보도 취급할 수 있거나, 키내의 데이터가 nil 인 일도 있으므로 ?? 를 사용해 대체의 캐릭터 라인을 준비하고 있습니다.
Text(thread["title"] ?? "")

이렇게 하면 텍스트가 표시되지 않습니다.



해결책



해결책으로는 as String를 붙이는 것이었습니다.
Text((thread["title"] ?? "") as String)

이렇게 하면 텍스트가 표시됩니다.



주의점



ObservableObject로 정의했을 때는 이런 상황이 된 기억이 없기 때문에, View의 State로서 데이터스토어를 정의했을 때에 일어날 가능성이 있습니다. Xcode는 12.5.1, Swift 5.4.2에서 발생합니다. 뷰에서 fun을 정의하고 거기에서 반환하는 경우에는 문제가 없었습니다.

요약



텍스트에 한정되지 않는다고 생각합니다만 , 잘 나오지 않을 때는, 이 방법을 사용해 보세요.

mBaaS로 서버 개발 불필요! 니후쿠라 mobile backend

좋은 웹페이지 즐겨찾기