2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

kUTType~ was deprecated in iOS 15.0. Use UTTypeImage instead.の対応方法

Posted at

kUTType〜 was deprecated in iOS 15.0. Use UTTypeImage instead.  の対応

こんにちは。
久々の投稿になります

業務でちょっと調べて日本語記事があまり見当たらなかったので書いておこうと思います。誰かの役に立てば幸いです。

ざっくり

iOS 15.0から、kUTTypeが廃止され、UTTypeが代わりに使用されるようになりました。
現在MobileCoreServicesを使ってkUTTypeImageとかkUTTypeMovieとかを使っているところはwarningが出ると思います。
その対応をした時にwarning通りにするとErrorになったのでその時の対応を書きます。

説明しないこと

Uniform Type Identifiersに関しては説明しません。
旧来のMobileCoreServicesは何をやっているのかとかは説明しません。

どんなwarning?

以下のwarningが出ます。

スクリーンショット 2023-03-01 23.12.22.png

で、単純に変更してもErrorになります。そんな簡単にはいかないですねw

スクリーンショット 2023-03-01 23.13.02.png

そのほかにも

UTTypeCreatePreferredIdentifierForTag の実装や、UTTypeCopyPreferredTagWithClassなどでも deprecatedでwarningになります。

対応方法

UniformTypeIdentifiersの利用が推奨になったのでそれを使っていきます。
以下UniformTypeIdentifiersの説明はこちらに載っていましたので引用します。

実装は以下の感じです。


import UniformTypeIdentifiers

...

myImagePickerController.mediaTypes = [ UTType.image.identifier ]



上記のような感じで実装できるようになりました。 

UTTypeCreatePreferredIdentifierForTagなどは

extension URL {
    func mimeType() -> String {
        let pathExtension = self.pathExtension
        if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
            if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
                return mimetype as String
            }
        }
        return "application/octet-stream"
    }

... 

上記の実装が

extension URL {
    func mimeType() -> String {
        let pathExtension = self.pathExtension
        if let type = UTType(filenameExtension: pathExtension) {
            if let mimetype = type.preferredMIMEType {
                return mimetype as String
            }
        }
        return "application/octet-stream"
    }

...

このように簡潔に書けるようになりました。

より簡潔にかけるので素晴らしいですね!

まとめ

こういった細かな変更などはちゃんとキャッチしてかなければならないねと、改めて学んだ内容でした。
具体的な内容は公式を読むのが一番なのでこれはメモ要素を含めたまとめ記事とさせていただきます。
同じような対応で力になれたら幸いです。

ではまた!

参考

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?